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
。其余类型以此类推。
然后看看有符号整数和无符号整数的区别,就是有符号整数的首个位是符号位,存储正负,不存储数据。
变量的命名规范
首先是必须遵守的规则,只有通过这些规则才能不报错:
- 不能重名
- 不能以数字开头
- 不能用C#的关键字命名
- 不能有特殊符号,下划线除外
然后是可遵循的命名规范:
- 变量名要有含义,推荐用纯英文/纯拼音形式。
- 对于变量的声明,推荐使用驼峰命名法。首字母小写,之后单词首字母大写。例如
yourName
。 - 对于函数、类的声明,推荐使用帕斯卡命名法。所有单词首字母都大写。
参考资料
- 【唐老狮】Unity基础课程之C#入门