C#中的变量类型(值类型、引用类型)

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的对比:

扫描二维码关注公众号,回复: 12410132 查看本文章

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"。

猜你喜欢

转载自blog.csdn.net/weixin_43885532/article/details/111242560