当前位置: 首页 > news >正文

C#——数据与变量

本片博客主要是记录一下C#和C++中语法的一些区别,或者本人认为重要的地方,相同的地方不再做笔记进行记录。

目录

一、声明变量声明

1.2 语法如下

1.2 案例

二、枚举类型        

2.1 语法如下:

2.2 案例

三、结构(C++为结构体)

3.1 语法如下:

3.2 案例

四、隐式类型转换

五、显式类型转换

5.1 类型转化三种方式:

5.2 案例

六、Convert 类


一、声明变量声明

        变量的作用是为了获得内存的使用空间,之后才能存储设置的数据或运算后的数据。

1.2 语法如下

        数据类型 变量名称;
        一个变量只能存放一份数据,存放的数据值为“变量值”。声明变量的同时可以使用“=”(等号运算符,即赋值符号)给变量赋初值。例一语法如下:

int number=25;
float result= 356.78F;(c++中不需要F,不过我试验了一下C#有提示)

        给变量赋值时,若是浮点数 foat的值,则要在数值后面加上后置字符f或F
        例二:声明变量的合法语句。

float numl,num2;//变量 num1 和 num2 都声明为 float 类型
num1 = num2 = 25.235F;//给变量 num1 和 num2 赋予相同的值

1.2 案例

二、枚举类型        

        枚举数据类型(Enumeration)提供相关整数的组合,只能以byte、short、int和 long 为数据类型。定义的枚举成员需将常数值初始化。

2.1 语法如下:

enum EnumerationName [:整数类型]
{成员名称1【=起始值]成员名称2【=起始值]。。。。。。
}

声明枚举常数值,必须以enum 关键字为开头。
EnumerationName:枚举类型名称。命名规则采用PascalCasing,也就是第一个英文字母要大写。
枚举的数据类型只能以整数声明,默认数据类型是int。
枚举成员名称后,可指定常数值。若未指定,则默认常数值从0开始

        通常在命名空间下定义枚举类型,便于命名空间的存取。枚举类型以“{”左大括号开始,以“}”右大括号结束,枚举成员定义于大括号括起来的区块中。

例一:
enum Season {spring,summer,autumn,winter};
表示枚举成员 spring 的值从0开始,按序递增,所以summer 的值是 1,winter 的值是 3.
例二:将东、西、南、北以枚举类型定义为常数值。
enum Location :byte
{east =1l,west =12,south=13,north=14};
将东、西、南、北以枚举类型来定义,并指定它的值类型为 byte。

        定义了枚举类型的成员之后,直接使用“枚举名称.成员”来调用某个枚举成员。
Console.writeLine("Location.east");//输出 east
Console. writeLine($"east={(byte)Location.east}");//输出 11
        使用己定义的枚举来声明变量,相关语法如下:
EnumerationName 变量名称;
变量名称= EnumerationName.枚举成员;
        在上述例子中,声明了 Location 的枚举常数之后,我们就可以直接使用枚举成员或变量名来存取枚举类型的成员了。
Location site;        //声明枚举类型的变量
site =Location.easti        //存取枚举类型的变量
Location site =Location.east; //将两行语句合并成一行语句

2.2 案例

三、结构(C++为结构体)

        在存储数据时,有时会碰到数据由不同的数据类型组成的情况。例如,学生注册时要有姓名、入学日期、缴纳费用等。以“用户自定义类型”(User Defined Type)来看,“结构”(Structure)可符合上述需求,即组合不同类型的数据项,

3.1 语法如下:

[AccessModifier]struct 结构名称
{数据类型 成员名称1;数据类型 成员名称2;
}

AccessModifier 是存取权限修饰词,设置结构的存取范围,包含public、private 等.

定义结构时,必须以几来表示结构的开始和结束。

“结构名称”的命名规则采用 PascalCasing,也就是第一个英文字母要大写.

每一个结构成员可以根据需求定义不同的数据类型。

        结构类型是一种“复合数据类型”。。要先创建一个结构变量才能使用此结构类型的成员语法如下:
        结构类型 结构变量名称;
        结构变量名称.结构成员
  要存取结构成员,同样要使用“.”(句点)运算符。

3.2 案例

四、隐式类型转换

        “数据类型转换”(Type Conversion)就是将 A 数据类型转换为B数据类型。什么情况下会需要类型转换呢?例如,运算的数据同时拥有整数和浮点数。还有一种常见的情况,例如范例“Ex0306”中的语句:
        pt1 =(int)City.Ningbo;
        将枚举常数用转换运算符()转为 int 类型。

五、显式类型转换

        系统的“隐式类型转换”能减轻编写程序代码的负担,相对地,有可能会让数据的类型不明确,或者转换成错误的数据类型。为了降低程序的错误,有必要对数据进行明确的“转型’(Cast)。转型是明确地告知编译器要转换的类型。若是“缩小转换”,则有可能造成数据遗失。

5.1 类型转化三种方式:

使用转换运算符()(括号)。
使用 Parse()方法。
用 Convert 类提供的方法进行转换

5.1.1用转换运算符()

        转换类型时,要在变量或表达式前用转换运算符“0”指明要转换的类型,语法如下:
变量=(要转换类型)变量或表达式;
        这种显式类型转换的方法在前面的范例中都使用过。例如:
pt2 =(int)City.Shaoxing;
用转换运算符()将获取的数据转换为 int 类型.

5.1.2 Parse()方法

        类型转换的第二种方法是指定要转换的数据类型。使用Parse()方法的语法如下:
数值变量=数据类型.Parse(字符串);
        用 Parse()方法转换类型时,以C#程序设计语言的数据类型为主
        在控制台应用程序中,用 ReadLine()方法读入的数据是字符串,要通过 Parse()方法转换成指定的值类型才能进行后续的运算,语句如下:
area = float.Parse(Console.ReadLine());

Console在于是否引用了命名空间,using System。
用 Parse()方法转换 foat 类型,再赋值给 area 变量。

5.2 案例

六、Convert 类

        使用 Convert 类提供的方法将表达式转换为兼容的类型。以.NET Framework 的数据类型为主,表 3-9是与字符串部分有关的方法。

Convert 类还可以配合其他类型进行数据格式的转换。下面的范例项目中以 ToDateTimeO)方法把读取的字符串转为日期格式。ToDateTime0方法的语法如下:
        DateTime对象=Convert.ToDateTime(字符串);
DateTime 结构类型用来处理日期和时间。

http://www.dtcms.com/a/279709.html

相关文章:

  • 软件构件组装三层次体系:定制、集成与扩展的深度解析
  • Product Hunt 每日产品热榜 | 2025-07-14
  • 【氮化镓】非辐射复合载流子诱导的瞬态缺陷机制
  • 实现dify关于python安装包功能的实现
  • java进阶(三):单例、工厂、模版方法与代理模式详解
  • 【25-cv-7832】TME携瓢虫少女动漫发起商标+版权维权案,近百家店铺被冻!!
  • Spring Boot 实现图片防盗链:Referer 校验与 Token 签名校验完整指南
  • 【html基本界面】
  • 李沐动手学深度学习Pytorch-v2笔记【08线性回归+基础优化算法】2
  • FreeRTOS之链表操作相关接口
  • 【深度学习框架终极PK】TensorFlow/PyTorch/MindSpore深度解析!选对框架效率翻倍
  • xss-lab靶场通关
  • 多租户云环境下的隔离性保障:虚拟化、容器、安全组如何协同防护?
  • python高阶调试技巧,替代pring
  • HDMI接口定义(二)
  • 网络编程7.12
  • 【elasticsearch9.0】【kibana】Docker安装
  • Java从入门到精通!第五天(面向对象(二))
  • JAR 包冲突排雷指南:原理、现象与 Maven 一站式解决
  • 深度解读virtio:Linux IO虚拟化核心机制
  • 评论设计开发
  • RedisJSON 技术揭秘`JSON.DEBUG MEMORY` 量化 JSON 键的内存占用
  • Python深浅拷贝全解析:从原理到实战的避坑指南
  • 深度解析:htmlspecialchars 与 nl2br 结合使用的前后端协作之道,大学毕业论文——仙盟创梦IDE
  • 工业场合需要千变万化的模拟信号,如何获取?
  • B4016 树的直径
  • 阿尔卡特ASM180TD181TD氦检漏器ALCATEL
  • 使用dify生成测试用例
  • 【第一章编辑器开发基础第二节编辑器布局_3间距控制(4/4)】
  • OpenCV C++ 中的掩码(Mask)操作