本文共 1015 字,大约阅读时间需要 3 分钟。
C#有两种类型:值类型和引用类型。值类型的变量直接包含数据,引用类型的变量则包含对变量(对象)的引用。对于引用类型,两个变量可以引用同一个对象,所以,对一个变量的操作可能会影响另一个变量引用的对象。而对于值类型,每个变量都有自己的数据副本,因此,对一个变量的操作不会影响到另一个变量(ref和out参数变量除外)。
一、值类型
C#中值类型分为简单类型、枚举类型、结构类型和可以为null的值类型。
- 简单类型
- 有符号的整形:sbyte,short,int,long.
- 无符号的整形:byte,ushort,uint,ulong
- Unicode字符:char,表示一个UTF-16字符
- IEEE二进制浮点数:float,double
- 高精度十进制浮点数:decimal
- 布尔类型:bool,用于表示布尔值(true和false)
- 枚举类型
- 结构类型
- 格式为 的用户定义类型,struct类型定义了包含数据成员和函数成员的数据结构,与类类型相似,但结构类型是值类型,存储在栈上,无法被继承,并且所有结构类型均隐式继承自 object 类型
- 可以为null的值类型
- 元组值类型
二、引用类型
C#中引用类型分为类类型、接口类型、数组类型和委托类型
- 类类型
- 其他所有类型的最终基类:object
- Unicode字符串:string,表示一个UTF-16字符串
- 格式为
class TestClass{ //方法、属性、字段、事件、委托 //和嵌套类 }
的用户定义类型,class 类型定义了包含数据成员(字段)和函数成员(方法、属性等)的数据结构,一个类类型只能继承一个基类,但一个类能实现多个接口。
- 接口类型
- 格式为 的用户定义类型,定义了所有类继承接口时应遵循的语法协议。包含了属性、方法和事件的声明,这些接口成员的定义(代码实现)必须由实现接口的类或结构完成。接口可以继承自多个基接口,类和结构可以实现多个接口。
- 数组类型
- 委托类型
- 格式为 的用户定义类型,表示对具有特定参数列表和返回类型的方法的引用。
转载地址:http://hduki.baihongyu.com/