C#中的变量类型:
值类型:值类型直接存储的是变量的值,变量空间在栈上分配,分配速度比较快。给变量赋值时需注意变量类型的取值范围,给变量赋不合理的值会导致编译器报错。布尔类型的变量只有两种可选择的值true/false,布尔值的默认值是false。
- 整型:sbyte、short、int、long、byte、ushort、uint、ulong
- 浮点型:float 、double、decimal
小数默认为double类型,若需指定小数值的类型则可以在小数后加f或F,如1.234f或1.234F表示该值为float类型,如2.345d或2.345D表示该值为double类型。
需要注意浮点类型中的特殊类型decimal类型,该类型一般在货币计算等需要高精度数据的场合中使用。
float 、double、decimal的对比:
float 有效数字7位,范围bai ±1.5 × 10E−45 to ±3.4 × 10E38
double 有效数字15/16 位,范围 ±5.0 × 10 E−324 to ±1.7 × 10E308
decimal 有效数字 28/29 位,范围 ±1.0 × 10E−28 to ±7.9 × 10E28
1)表示数的范围 decimal<float<double,其中decimal表示数的范围最小而不是最大
2)表示数的精度float<double<decimal,其中decimal表示的数的精度最高
- 字符型:char
- 布尔型:bool
布尔类型的变量只有两种可选择的值true/false,布尔值的默认值是false。
- 结构类型:struct
- 枚举类型:enum
引用类型:引用类型存储对值的引用,class、interface、delegate、object、string、Array
C#中预定义的引用类型有两种,为object和string类型。
- object类
object和System.Object等价,object类是所有类和变量类型的基类,在定义类时会自动继承object类,因此定义类时后面的从object继承的标识可以省略。
- string类
需要注意的是:string类型是一种特殊的引用类型,string类型变量的值一旦初始化就不能再改变。因此,下图中str1 = "ASP.NET"实际上并不是将之前定义的str1的值修改为"ASP.NET",而是重新生成了一个对象,将该对象的值赋值为"ASP.NET"。