C# 经典实例 第三章 数据类型 简介

简介:

作为一种值类型,简单类型(simple type)是C#中内建类型的一个子集,不过事实上这些类型被定义为.NET Framework类库(.NET FCL)的一部分。简单类型由若干数字类型和一个bool类型构成。这些数字类型包括一个十进制类型(decimal)、九个整数类型(byte、char、int、long、sbyte、short、unit、ulong、和ushort)以及两个浮点类型(float和doubule)。表3-1列出了.NET Framework中的简单类型及其完全限定名。

表3-1:简单数据类型

全名别名取值范围
System.Boolearnbooltrue或false
System.Bytebyte0~255
System.SByte sbyte -128~127
System.Char char  0~65535
System.Decimal decimal -79,228,162,514,264,337,593,543,950,335~79,228,162,514,264, 337,593,543,950,335 
System.Doubledouble -1.79769313486232e308~1.79769313486232e308 
System.Single float -3.40282347E+38~3.40282347E+38 
System.Int16short  -32768~32767 
System.Uint16 ushort  0~65535
System.Int32 int -2,147,483,648~2,147,483,647 
System.UInt32 uint  0~4,294,967,295
System.Int64 long  -9,223,372,036,854,775,808~9,223,372,036,854,775,807 
System.UInt64 ulong  0~18,446,744,073,709,551,615

当处理浮点数据类型时,精度可能比数值的范围更重要。浮点数据类型的精度如表3-2所示:

表3-2:浮点精度:

浮点类型精度
System.Single(float)  7位
System.Double(double)15-16位
System.Decimal(decimal)28-29位

在使用浮点与使用十进制数之间进行决策时,要考虑以下两个方面:

  • 浮点供科学家使用,设计用于表示物理学中精度和量值的整个范围上的不精确量。
  • 十进制数供普通人使用,设计用于进行十进制计算,仅需要小数点之后少量的数字,或者用于需要准确记录每一分钱的使用情况(例如核对支票本)。

C# 为各种数据类型保留的关键字是针对类型的完全限定名称的简单别名。因此,用户使用类型名还是保留字是无关紧要的,C#编译器将生成同样的代码。

要注意下列类型与公共语言规范(common language specification,CLS)并不兼容:sbyte、ubyte、uint和ulong。结果可能导致他们不被其他.NET语言支持。枚举隐式继承自System.Enum,后者又继承自System.ValueType。枚举有着单一的应用。描述一个特定组的数据项。例如,颜色Red、Bule和Yellow可由枚举ShapeColor定义;

 enum ShapeColor     {     Red, Blue, Yellow     } 

枚举中的每个数据项接受一个数字值,无论你是否给它赋过值。由于编译器为枚举中的每个项自动添加以0开头并且递增1的数字,因此上述定义的ShapeColor枚举如果以下列方式定义,那么它将完全相同:

  enum ShapeColor     {    Red = 0,Blue = 1,Yellow = 2    }

枚举是一种很好的代码文档化工具。例如,如下编写的代码会更加直观。

 ShapeColor currentColor = ShapeColor.Red;
下面这样就不太直观。

 int currentColor = 0;

这两种机制都能工作,但第一种方法容易阅读和理解,特别是对于一个接管其他人代码的新开发人员而言。枚举对保证C#中的类型安全也有益处,而使用原始的int不能提供数据安全。CLR将枚举视为其基础类型的成员,因此对于所有语言他并非都是类型安全的。
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、变量类型 int double string char bool decimal 变量的使用规则:先声明再赋值最后使用 int number; number=10; number=20; Console.WriteLine(number); 2、Camel Pascal 3、运算符 赋值运算符:= 复合赋值运算符:+= -= *= /= %= sum+=age; sum=sum+age; 算数运算符: + - * / % ++ -- 关系运算符: > < >= <= == != 逻辑运算符: && || ! 4、c#中的语法结构 分支结构: if if-else 选择结构: while do-while for 5、常量 声明的常量的语法: const 变量类型 变量名=值; 什么时候会用到常量? 6、枚举 语法: [public] enum 枚举名 { 值1, 值2, 值3, ........ } public:访问修饰符。公开的公共的,哪都可以访问。 enum:关键字,声明枚举的关键字 枚举名:要符合Pascal命名规范 将枚举声明到命名空间的下面,类的外面,表示这个命名空间下,所有的类都可以使用这个枚举。 枚举就是一个变量类型 ,int--double string decimal. 只是枚举声明、赋值、使用的方式跟那些普通的变量类型不一样。 我们可以将一个枚举类型的变量跟int类型和string类型互相转换。 枚举类型默认是跟int类型相互兼容的,所以可以通过强制类型转换的语法互相转换。 当转换一个枚举中没有的值的时候,不会抛异常,而是直接将数字显示出来。 枚举同样也可以跟string类型互相转换,如果将枚举类型转换成string类型,则直接调用ToString(). 如果将字符串转换成枚举类型则需要下面这样一行代码: (要转换的枚举类型)Enum.Parse(typeof(要转换的枚举类型),"要转换的字符串"); 如果转换的字符串是数字,则就算枚举中没有,也会不会抛异常。 如果转换的字符串是文本,如果枚举中没有,则会抛出异常。 7、所有的类型都能够转换成string类型,调用ToString()。 8、结构 可以帮助我们一次性声明多个不同类型的变量。 语法: [public] struct 结构名 { 成员;//字段 } 变量在程序运行期间只能存储一个值,而字段可以存储多个值。 9、数组 一次性存储多个相同类型的变量。 语法: 数组类型[] 数组名=new 数组类型[数组长度]; ***数组的长度一旦固定了,就不能再被改变了 10、冒泡排序:就是将一个数组中的元素按照从大到小或者从小到大的顺序进行排列。 int[] nums={9,8,7,6,5,4,3,2,1,0}; 0 1 2 3 4 5 6 7 8 9 第一趟比较:8 7 6 5 4 3 2 1 0 9 交换了9次 i=0 j=nums.Length-1-i 第二趟比较:7 6 5 4 3 2 1 0 8 9 交换了8次 i=1 j=nums.Length-1-i 第三趟比较:6 5 4 3 2 1 0 7 8 9 交换了7次 i=2 j=nums.Length-1-i 第四趟比较:5 4 3 2 1 0 6 7 8 9 交换了6次 i=3 j=nums.Length-1-i 第五趟比较:4 3 2 1 0 5 6 7 8 9 交换了5次 第六趟比较:3 2 1 0 4 5 6 7 8 9 交换了4次 第七趟比较:2 1 0 3 4 5 6 7 8 9 交换了3次 第八趟比较:1 0 2 3 4 5 6 7 8 9 交换了2次 第九趟比较:0 1 2 3 4 5 6 7 8 9 交换了1次 for(int i=0;i<number.Length-1;i++) { for(int j=0;j<nums.Length-1-i;j++) { if(nums[j]>nums[j+1]) { int temp=nums[j]; nums[j]=nums[j+1]; nums[j+1]=temp; } } } 11、方法 函数就是将一堆代码进行重用的一种机制。 函数的语法: [public] static 返回值类型 方法名([参数列表]) { 方法体; } public:访问修饰符,公开的,公共的,哪都可以访问。 static:静态的 返回值类型:如果不需要写返回值,写void 方法名:Pascal 每个单词的首字母都大些。其余字母小写 参数列表:完成这个方法所必须要提供给这个方法的条件。如果没有参数,小括号也不能省略。 方法写好后,如果想要被执行,必须要在Main()函数中调用。 方法的调用语法: 类名.方法名([参数]); ***在某些情况下,类名是可以省略的,如果你写的方法跟Main()函数同在一个类中,这个时候, 类名可以省略。 12、return 1、在方法中返回要返回的值。 2、立即结束本次方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值