C#把数据类型分为两种
● 值类型
● 引用类型
从概念上看:其区别是值类型直接存储其值,而引用类型存储对值的引用
这两种类型存储在内存的不同地方:值类型存储在堆栈中,而引用类型存储在托管堆上
如果变量是一个引用,就可以把其值设置为null,表示它不引用任何对象
基本数据类型都是值类型
这个位其是二进制中(01)的个数。
比如byte
int i= Convert.ToInt32("11111111", 2); Console.WriteLine(i);//输出255 byte b = 255;
1.整型
所有整数类型的变量都能被赋予十进制或十六进制的值,后者需要Ox前缀
如果对一个整数是int、uint、long或是ulong没有任何显式的声明,则该变量默认为int类型。
为了把输入的值指定为其他整数类型,可以在数字后面加上如下字符:
uint ui = 1234U; 1ong l = 1234L; ulong ul = 1234UL;
2.浮点类型
C#提供了许多整型数据类型,也支持浮点类型。
如果在代码中没有对某个非整数值(如12.3)硬编码,则编译器一般假定该变量是double类型 。如果想指定该值为float, deomal,可以在其后加上字符F或者f ,M或者m:
float a=12.3f; decimal b=12.3m;
注意, deomal类型不是基本类型,所以在计算时使用该类型会有性能损失。
3.布尔值类型
bool类型用于包含布尔值true或false
bool值和整数值不能相互隐式转换。如果变量(或函数的返回类型)声明为bool类型,就只能使
用值tue或false。
4.字符类型
char数据类型:保存单个字符的值.(表示一个16位的unicode字符)。
char类型的字面量是用单引号括起来的,如’A’。
除了把char表示为字符字面量之外,还可以用4位十六进制的unicode(如:”\u0041”)、带有数
据类型转换的整数值(如(char)65)或十六进制(如:\x0041)表示它们。它们还可以用转义序列表示,如图: