变量命名
- 变量名的第一个字符必须是字母、下划线或@;
- 其后的字符可以是字母、下划线或数字;
- 变量名区分大小写;
- 不能使用C#关键字作为变量名,如 int、double、char、namespace等;
声明变量
//格式:变量类型 变量名称;
int num;
bool isGood;
char character;
//变量在使用前必须初始化,否则无法通过编译
num = 1;
isGood = true;
character = 'A';
//也可以在声明变量时初始化
int num = 1;
bool isGood = true;
char character = 'A';
//一次声明多个相同类型的变量,以“,”分隔各个变量
int num1, num2;
bool isGood, isBad;
char char1, char2;
//同时使用以上各种技巧
int num1 = 1, num2 = 2;
bool isGood, isBad = false; //isGood没有初始化
isGood = true; //初始化isGood
字面值
在前面的示例中,已经使用了字面值:整数、字符串、true 和 false。其他变量类型也有相关的字面值,如下表所示。其中有许多带有后缀,以表明此种字面值属于哪种类型,一些字面值有多种类型,编译器可以根据其所处的上下文环境判断其类型。
类型名 | 类别 | 后缀 | 示例/允许的值 |
---|---|---|---|
bool | 布尔 | 无 | 只能是 true 或 false |
int, uint, long, ulong | 整数 | 无 | 10 |
uint, ulong | 整数 | u 或 U | 10U |
long, ulong | 整数 | l 或 L | 10L |
ulong | 整数 | u 或 U、l 或 L | 10UL |
float | 实数 | f 或 F | 10.5F |
double | 实数 | 无、d 或 D | 10.5D、10.5 |
decimal | 实数 | m 或 M | 10.5M |
char | 字符 | 无 | ‘a’ 或 转义序列 |
string | 字符串 | 无 | “abcd”,可以包含转移序列 |
字符和字符串的字面值
- 字符的字面值以单引号包裹;
char character = 'a';
- 字符串的字面值以双引号包裹;
string testString = "Hello world!";
- 转义序列的含义;
//如果要使用单引号字符
char character = '''; //错误,因为前两个单引号会被认为是配对的
char character = '\''; //正确,“ \' ” 表示单引号
//如果要使用双引号字符
string testString = "Hello "world" !"; //错误,因为前两个双引号会被认为是配对的
string testString = "Hello \"world\" !"; //正确,“ \" ” 表示双引号
- 强制不转义;
在字符串前加 @ 可以强制字符串不使用转义字符,这对于文件名非常有用,
因为文件名中大量使用了反斜杠,如果使用转义字符串,就必须在字符串中使用两个反斜杠
“C:\\Users\\Myfile.txt”
而使用 @ 符号,这些内容就更便于编写和阅读
@“C:\Users\Myfile.txt”
转义序列
转义序列 | 产生的字符 | 字符的 Unicode 值 |
---|---|---|
\’ | 单引号 | 0x0027 |
\” | 双引号 | 0x0022 |
\0 | 空 | 0x0000 |
\a | 警告(产生蜂鸣) | 0x0007 |
\b | 退格 | 0x0008 |
\f | 换页 | 0x000C |
\n | 换行 | 0x000A |
\r | 回车 | 0x000D |
\t | 水平制表符 | 0x0009 |
\v | 垂直制表符 | 0x000B |
\\ | 反斜杠 | 0x005C |