💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
## **介绍** 在C#中,变量分为以下几种类型: * 值类型 * 引用类型 * 指针类型 ## **值类型** | 类型 | 描述 | 范围 | 默认值| | --- | --- | --- | --- | | bool | 布尔值 | True 或 False | False | |byte |8位无符号整数 | 0~255 | 0 | |char |16位Unicode字符 |U+0000 到 U+ffff | '\0' | | decimal | 128位精确的十进制值,28-29有效位数 | (-7.9 x 10<sup>28</sup> 到 7.9 x 10<sup>28</sup>) / 10<sup>0~28</sup> | 0.0M | | double | 64位双精度浮点型 | (+/-)5.0 x 10<sup>-324</sup> 到 (+/-)1.7 x 10<sup>308</sup> | 0.0D | | float |32位单精度浮点型 |-3.4 x 10<sup>38</sup> 到 3.4 x 10<sup>38</sup> |0.0F | | int |32位有符号整数类型 | -2,147,483,648 到 2,147,483,647 | 0 | | long | 63位有符号整数类型 | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 | 0L | | sbyte | 8 位有符号整数类型 | -128 到 127 | 0 | | short | 16 位有符号整数类型 | -32,768 到 32,767 | 0 | | uint | 32 位无符号整数类型 | 0 到 4,294,967,295 | 0 | | ulong | 64 位无符号整数类型 | 0 到 18,446,744,073,709,551,615 | 0 | |ushort|16 位无符号整数类型 | 0 到 65,535 |0| 可以使用`sizeof`方法获取一个类型或者变量的存储大小。 ``` static void Main(string[] args) {          Console.WriteLine("Size of int: {0}",sizeof(int));          Console.ReadLine(); } ``` ## **引用类型** 引用类型不包含存储在变量中的实际数据,是变量的引用。 内置的引用类型有:`object`、`dynamic`和`string`。 ### **对象类型(Object)** 对象类型是C#通用类型系统中所有数据类型的基类。 对象类型可以被分配成任何其他类型,在分配值之前需要先进行类型转换。 当一个值类型转换为对象类型时,被称为**装箱**;当一个对象类型转换为值类型时,称为**拆箱**。 ### **动态类型(Dynamic)** 在动态类型变量中可以存储任何类型的值,这些变量的类型检查是在运行时发生的。 ``` // 声明动态类型变量的语法 dynamic <variable_name> = value; // 举例 dynamic d = 20; ``` ### **字符串类型(String)** 字符串类型允许给变量分配任何字符串值。 可以通过引号和@引号来进行分配。 ``` String str = "Hello World"; @"Hello World"; ``` 字符串前面可以加@,将转义字符"\"当作普通字符对待。 ~~~ string str = @"C:\Windows"; // 等价于 string str = "C:\\Windows"; ~~~ ### **指针类型(Pointer types)** 指针类型的变量存储内存地址。 ~~~ // 声明指针类型的语法; type* identifier; // 例如 char* cptr; int* iptr; ~~~