C# 数据类型

值类型

  1. 值类型变量可以直接分配给一个值.它们是从类System.ValueType中派生的.
  2. 值类型直接存储其值
  3. 值类型的实例通常是在线程栈上分配的(静态分配),但是在某些情形下可以存储在堆中
  4. 值类型总是分配在它声明的地方:作为字段时,跟随其所属的变量(实例)存储:作为局部变量时,存储在栈上.栈的内存是自动释放的.
  5. 值类型在内存管理方法具有更好的效率,并且不支持多态,适合用做存储数据的载体
  6. C#的值类型包括:结构体(数据类型,bool型,用户定义的结构体),枚举,可空类型
类型描述范围默认值
bool布尔值True或FalseFalse
char16位Unicode字符U+0000到U+fff‘’
byte8 位无符号整数0 到 2550
sbyte8 位有符号整数-128 到 1270
short16 位有符号整数-32,768 到 32,7670
ushort16 位无符号整数0 到 65,5350
int32 位有符号整数-2,147,483,648 到 2,147,483,6470
uint32 位无符号整数0 到 4,294,967,2950
long64 位有符号整数-923,372,036,854,775,808 到 9,23,372,036,854,775,8070
ulong64 位无符号整数0 到 18,446,744,073,709,551,6150
float32 位单精度浮点-3.4 x 1038 到 + 3.4 x 10380.0F
double64 位双精度浮点(+/-)5.0 x 10-324 到 (+/-)1.7 x 103080.0
decimal128 位精确的十进制值,28-29 有效位数(-7.9 x 1028 到 7.9 x 1028) / 100 到 280.0M

引用类型(Reference types)

  1. 引用类型不包含存储在变量中的实际数据,但它们包含对变量的引用.继承自System.Object类
  2. 引用类型存储对其值的引用.它们指的是一个内存位置.使用多个变量时,引用类型可以指向一个内存位置.如果内存位置的数据是由一个变量改变的,其他变量会自动反映这种值得变化
  3. 引用类型当声明一个类时,只在栈中分配一小片内存用于容纳一个地址,而此时并没有为其分配堆上的内存空间.当使用new创建一个类的实例时,分配堆上的空间,并把堆上空间的地址保存到栈上分配的小片空间中.
  4. 引用类型的对象宗师在进程堆中分配(动态分配)
  5. 引用类型在栈中存储一个引用,其实际的存储位置位于托管堆.简称引用类型部署在托管堆上(堆内存是.NET中会由GC来自动释放)
  6. 引用类型可以派生出新的类型,而值类型不能,因为所有的值类型都是密封(seal)的
  7. 引用类型可以包含null值,值类型不能(可空类型功能允许将null赋给值类型,如int?a=null)
  8. 引用类型变量的复制值只复制对对象的引用,而不复制对象本身.而将一个值类型变量赋给另一个值类型变量时,将复制包含的值
  9. C#的引用类型包括:
    (1)内置的引用类型有:object,dynamic和string
    a,对象(Object)类型是C#通用类型系统(Common Type System-CTS)中所有数据类型的终极基类.Object是System.Object类的别名.所有对象(Object)类型可以被分配任何其他类型(值类型、引用类型、预定义类型或用户自定义类型)的值。但是,在分配值之前,需要先进行类型转换。
    b,动态(Dynamic)类型您可以存储任何类型的值在动态数据类型变量中。这些变量的类型检查是在运行时发生的。动态类型与对象类型相似,但是对象类型变量的类型检查是在编译时发生的,而动态类型变量的类型检查是在运行时发生的。
    c,字符串(String)类型允许给变量分配任何字符串值。字符串(String)类型是 System.String 类的别名。它是从对象(Object)类型派生的。字符串(String)类型的值可以通过两种形式进行分配:引号和 @引号。
    (2)用户自定义引用类型有:class、数组、interface 或 delegate。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值