C#中数据类型
数据类型
-
值类型
值类型变量可以直接分配给一个值(申请了空间),它们是从System. Value Type中派生的。
如下面的整型数据a,是向操作系统申请了四个字节的空间
int a;
C#中的基本数据类型除String外都是值类型,以及struct也是值类型。
-
引用类型
引用类型不包含存储在变量中的实际数据,但它们包含对变量的引用(换而言之,记录的是地址)
优点:传递数据时只传4个字节,高效
内置的引用类型有:object、dynamic和string
-
对象(Object)类型
Object类型是通用类型,系统中所有的数据类型的终极基类。所以Object类型可以被分配任何其他类型的值,但是在分配前需要进行类型转换。【可以用C++中**void *** 去理解】
这就涉及装箱拆箱问题
-
动态(Dynamic)类型(区分C++的动态数据)
可以存储任何类型的值在动态数据类型变量中,运行时才能确定类型是什么【以C++的auto类型理解】。
声明动态类型的语法:
dynamic <变量名> = value;
例:
dynamic d = 20;
动态类型与对象类型相似,但是对象类型变量的类型检查是在编译时发生的,而动态类型变量的类型检查是在运行时发生的。
-
字符串(String)类型
字符串类型允许给变量分配任何字符串值,它是从Object类型派生来的。
“@”字符称为逐字字符,将转义字符当作普通字符看待【既双引号中原样输出】
string str = “C:\windows”;
等价于
string str = @ “C:\windows”;
-
-
指针类型
指针类型在C#中极少使用,是不安全代码;