变量和数据类型
让我们来了解 C# 中的基本数据类型和变量类型。
什么是变量?
变量是计算机内存中一个命名的位置,用于存储信息以供后续使用。变量中的信息可以改变,也可以在需要时被使用。可以把变量想象成一个带名字的盒子;盒子的内容可以变化,但盒子的名字保持不变。
什么是数据类型?
变量中的内容可以具有不同的数据类型。数据类型声明了变量中所包含信息的类型。数据类型有很多种类,例如 string 用于表示文本(如 "Hello World"),而 integer 用于表示数字(如 54),这些数字可用于数学运算。
变量操作
变量操作是指创建变量、赋值以及更新值的过程。下面我们来学习 C# 中的变量操作。
如何声明一个变量?
在下面的例子中,声明了一个名为 myStringName 的 string 类型变量。声明变量就像是创建一个空的、带名字的盒子。
1string myStringName;
如何给变量赋值?
1string myStringName = "Hello";
此时,变量 myStringName 中包含了值 "Hello"。
1myStringName = "Hello again";
在上面的例子中,值被更改为 "Hello again",但并未再次声明数据类型。
1string myStringName = "Hello"; // 声明并赋值 2Console.WriteLine(myStringName); 3 4myStringName = "Hello again"; // 重新赋值 5Console.WriteLine(myStringName);
数值类型示例
让我们看看以下数值类型的一些例子:
1int numOne = 5; 2Console.WriteLine(numOne); 3 4float numTwo = 2.55f; // 声明 float 类型时,数值后需加 "f" 5Console.WriteLine(numTwo); 6 7double numThree = 3.33; 8Console.WriteLine(numThree); 9 10decimal numFour = 4.66m; // 声明 decimal 类型时,数值后需加 "m" 11Console.WriteLine(numFour);
什么是 var 数据类型?
为了避免混淆,最好在声明变量时明确指定数据类型。不过,也可以使用 var 数据类型,编译器会自动推断出应使用的类型。
1var theWord = "hello"; // 声明为 string 类型,并赋值 "hello" 2Console.WriteLine(theWord); 3 4var theNumber = 5; // 声明为 int 类型,并赋值 5 5Console.WriteLine(theNumber);
一旦给 var 变量赋值后,其数据类型就不能再更改。在上面的例子中,我们无法将整数赋给 theWord 变量。在第一行之后,它只能接受字符串类型的值。
C# 数据类型的内存分配与取值范围
每种数据类型在声明时都会占用特定数量的内存。最小的单位是位(bit),8 个位组成一个字节(byte)。
下表列出了几种常见的数据类型及其占用的字节数、取值范围和示例。
| 数据类型 | 字节数 | 范围 | 示例 |
|---|---|---|---|
| byte | 1 | 0–255 | 7 |
| short | 2 | -32,768–32,767 | -10 |
| int | 4 | -2,147,483,648–2,147,483,647 | 12 |
| long | 8 | -9,223,372,036,854,775,808–9,223,372,036,854,775,807 | -54 |
| sbyte | 1 | -128–127 | 5 |
| ushort | 2 | 0–65,535 | 7 |
| uint | 4 | 0–4,294,967,295 | 9 |
| ulong | 8 | 0–18,446,744,073,709,551,615 | 11 |
| float | 4 | 表示最多 7 位有效数字的浮点数 | 12.3 |
| double | 8 | 表示最多 16 位有效数字的浮点数 | 12.35 |
| decimal | 16 | 表示最多 29 位有效数字的浮点数 | 12.356 |
| bool | 1 | 布尔逻辑类型(只能是 True 或 False) | True |
| char | 2 | 一个单一的 Unicode 字符 | H |
| string | 可变 | 字符序列 | Hello |
整数类型可分为有符号类型和无符号类型。有符号类型可以表示正数或负数,而无符号类型只能表示非负数。
例如,short 是一种有符号类型,其取值范围为 -32,768 到 32,767。如果不需要负数,则将其改为无符号类型(即 ushort),其范围变为 0 到 65,535,正数范围翻倍。