C#语言预定义了值类型和引用类型。在一些面试题中,通常会问到值类型和引用类型的区别。我们知道值类型和引用类型存储在不同的地方。值类型存储在堆栈(Stack)中,而引用类型存储在托管堆(managed heap)上。本文根据值类型和引用类型不同,和大家介绍下值类型和引用类型的预定义类型。
工具/原料
C#
预定义的值类型
1、1.整型。C#支持8中预定的整数类型。分别是sbyte、short、int、long、byte、ushort、uint、ulong。byte0-255得标准的8位整数类型。默认是无符号的,有符号的为sbyte。

3、3.decimal类型。decimal类型表示更高精度的浮点数。decimal类型常用于财务计算。可以用字母M来区分。如下:decimal d=1.2M。

5、5字符类型。C#支持插char类型,用来保存单个字符。char类型的字面量是单引号括起来的。如 ‘A’如果字符放在单引号中,编译器就会把它识别为string类型,变成引用类型。

2、string类型。C#有string关键字,string类型被分配至堆上,而不是栈上。当我们给一个字符串变量赋值时,会得到对内存中同一个字符串的两个引用。但是string与引用类型的一些行为有些不同。字符串是不可变的,当你修改其中一个字符串的时候,它就会创建一个新的string对象,而另一个字符串不会发生任何变化。
