2 - 变量

开始学习C#脚本语言,为Unity学习奠定基础。

代码的折叠

可以使用#region折叠代码,可以让我们在编程时逻辑更加清晰:

#region 折叠代码
Console.WriteLine("啦啦啦");
#endregion

本质是编译器提供给我们的预处理指令,只会在代码编辑时有用,执行时会被自动删除。

变量

声明并赋值变量

例如声明一个整型变量i,并赋值1:

int i = 1;

需要注意的是:

  • 赋值的数据类型需要和变量的相同,否则会报错。
  • 声明变量后必须对它赋值,否则会无法使用报错。

如果想要同时声明多个同类型变量,只需用逗号分隔:

int a1 = 1, b1 = 2, ...;

输入输出变量

可以通过Console.ReadLine()输入一行变量:

string str = Console.ReadLine();

可以通过Console.WriteLine()输出一行变量:

Console.WriteLine("变量i: " + i); 

变量的类型

有符号整型

能存储一定范围,正负数包括0的变量类型。

sbyte	// -128 ~ 127
int		// -21亿 ~ 21亿多
short	// -32768 ~ 32767
long	// -九百万兆 ~ 九百万兆

无符号整型

能存储一定范围,0和正数的变量类型。

byte	// 0 ~ 255
uint	// 0 ~ 42亿多
ushort	// 0 ~ 65535
ulong	// 0 ~ 1.8k百万兆之间的数

浮点数(实数)

float	// 7/8位有效数字, 平台相关
float x = 0.123f;
double	// 15~17位有效数字
double y = 0.12345;
decimal	// 27~28位有效数字 (double就够用了)
decimal z = 1.1234m;

其中:

  • 有效数字的位数是从左到右第一个非零数开始计算;
  • 声明float类型时,赋值要加一个f;声明decimal类型时,赋值要加一个m;是因为在C#中小数默认是double类型的,因此要加一个f/m提醒编译器。

特殊类型

bool	// 布尔值, 有true和false两个
bool bo = true;
char	// 存储单个字符(UTF-16)
char ch = '你';
string	// 字符串, 存储多个字符
string str = "你好";

不同的变量类型,存储的范围和类型均不一样,本质是占用的内存空间不一样。应该按需选择不同的数据类型用于存储不同类型的变量。

变量的存储空间

可以通过sizeof方法来获取变量类型所占的内存空间,单位为字节。

// 有符号
int sbyteSize = sizeof(sbyte);	// 1
int shortSize = sizeof(short);	// 2
int intSize = sizeof(int);		// 4
int longSize = sizeof(long);	// 8

// 无符号
int byteSize = sizeof(byte);	// 1
int ushortSize = sizeof(ushort);// 2
int uintSize = sizeof(uint);	// 4
int ulongSize = sizeof(ulong);	// 8

// 浮点数
int floatSize = sizeof(float);		// 4
int doubleSize = sizeof(double);	// 8
int decimalSize = sizeof(decimal);	// 16

// 特殊类型
int boolSize = sizeof(bool);	// 1
int charSize = sizeof(char);	// 2
// string类型长度可变, 不能通过sizeof()得到

变量的本质

计算机中所有数据的本质都是二进制,1个bit(位)就相当于1个0/1,8个bit组成一个byte(字节)。

首先看看数据类型的存储范围,例如byte类型,1字节8位,二进制范围是0000 0000 ~ 1111 1111,转换成十进制就是0 ~ 255。其余类型以此类推。

然后看看有符号整数和无符号整数的区别,就是有符号整数的首个位是符号位,存储正负,不存储数据。

变量的命名规范

首先是必须遵守的规则,只有通过这些规则才能不报错:

  1. 不能重名
  2. 不能以数字开头
  3. 不能用C#的关键字命名
  4. 不能有特殊符号,下划线除外

然后是可遵循的命名规范:

  1. 变量名要有含义,推荐用纯英文/纯拼音形式。
  2. 对于变量的声明,推荐使用驼峰命名法。首字母小写,之后单词首字母大写。例如yourName
  3. 对于函数、类的声明,推荐使用帕斯卡命名法。所有单词首字母都大写。

参考资料

  • 【唐老狮】Unity基础课程之C#入门