变量和表达式
C#基本语法
C#代码由一系列语句组成,每个语句都用分号表示结束
C#是一个块结构语言,用花括号来界定
C#的注释
1 /* 注释内容 */ 可以多行
2 // 注释内容 单行
3 /// 注释内容 单行
C#代码大小写敏感的
变量
声明变量:<type> <name>;
简单类型
整数类型
类型 别名 取值类型
sbyte System.SByte -128-127
byte System.Byte 0-255
short System.Int16 -32768-32767
ushort System.UInt16 0-65535
int System.Int32 -2147483648-2147483647
uint System.UInt32 0-4294967295
long System.Int64 -9223372036854775808-9223372036854775807
ulong System.UInt64 0-18446744073709551615
浮点数类型
类型 别名 近似的最小值 近似的最大值
float System.Single 1.5 × 10-45 3.4 × 1038
double System.Double 5.0 × 10-324 1.7 × 10308
decimal System.Decimal 1.0 × 10-28 7.9 × 1028
其他简单类型
类型 别名 允许的值
Char System.Char Unicode字符,0-65535之间
bool System.Boolean 布尔值:true或false
string System.String 字符
变量命名
命名规则
1 变量名的第一个字符必须是字母、下划线"_"或"@"
2 其后的字符可以是字母、下划线或数字
3 不能是C#关键字
还要注意C#是大小写敏感的
字面值
类型 类别 后缀 示例/允许的值
bool 布尔 无 true 或 false
int,uint,long,ulong 整数 无 100
uint,ulong 整数 u 或 U 100U
long,ulong 整数 l 或 L 100L
ulong 整数 ul, uL, Ul, UL, lu, lU, Lu或 LU 100UL
float 实数 f 或 F 1.5F
double 实数 无 d或 D 1.5
decimal 实数 m 或 M 1.5M
char 字符 无 'a', 或转义序列
string 字符串 无 "a...a",可以包含转义序列
字符串的转义序列
转义序列 产生的字符
/' 单引号
/" 双引号
// 反斜杠
/0 空
/a 警告(产生蜂鸣)
/b 退格
/f 换页
/n 换行
/r 回车
/t 水平制表符
/v 垂直制表符
/uXXXX 指定Unicode字符
逐字指定
逐字指定字符串,即两个双引号之间的所有字符部包含在字符串中
包括行末字符和需要转义的字符(除了双引号)。
在字符串前面加"@"实现逐字指定
例如:
@"C:/Temp/MyDir/MyFile.doc"
等同于
"C://Temp//MyDir//MyFile.doc"
变量声明和赋值
声明:<type> <name>;
赋值:<name> = <value>;
变量声明和赋值的过程叫初始化,变量在使用前必须初始化
技巧:
1 同时声明多个类型相同的变量
例如:int x, y;
2 声明变量的同时赋值
例如:int x = 24;
3 同时使用前面两个技巧
例如:int x, y = 25;
表达式
运算符分类:
1 一元操作符,处理一个操作数
2 二元操作符,处理二个操作数
3 三元操作符,处理三个操作数
数学运算符
运算符 类别 范例 结果
+ 二元 var1=var2+var3; 求和
- 二元 var1=var2-var3; 求差
* 二元 var1=var2*var3; 求乘积
/ 二元 var1=var2/var3; 求商
% 二元 var1=var2%var3; 求余
+ 一元 var1=+var2; 求正值
- 一元 var1=-var2; 求负值
注:"+"运算符还能把连个字符串连接起来
递增和递减运算符
运算符 类别 范例 结果
++ 一元 var1=++var2; var2=var2+1;var1=var2;
-- 一元 var1=--var2; var2=var2-1;var1=var2;
++ 一元 var1=var2++; var1=var2;var2=var2+1;
-- 一元 var1=var2--; var1=var2;var2=var2-1;
赋值运算符
运算符 类别 范例 结果
= 二元 var1=var2; var1=var2;
+= 二元 var1+=var2; var1=var1+var2;
-= 二元 var1-=var2; var1=var1-var2;
*= 二元 var1*=var2; var1=var1*var2;
/= 二元 var1/=var2; var1=var1/var2;
%= 二元 var1%=var2; var1=var1%var2;
类似地,"+="也能用户字符串
运算符优先级
运算符优先级由高到低
++ -- (前缀) + - (一元)
* / %
+ -
= += -= *= /= %=
++ -- (后缀)
注意:括号可用户忽略优先级顺序
命名空间
可以使用"namespace"关键字显式定义命名空间
在不同的名称空间级别之间使用点字符"."
名称是由名称空间是惟一定义的,不同级别之间可以有同名定义而相互独立
例如:
namespace LevelOne
{
//定义"NameOne"
//定义"NameThree"
namespace LevelTwo
{
//定义"NameTwo"
//定义"NameThree"
}
}
//LevelOne.NameOne
//LevelOne.LevelTwo.NameTwo
//下面两个名称可以独立使用互不干扰
//LevelOne.NameThree
//LevelOne.LevelTwo.NameThree
Using语句可以应用到包含它们门的名称空间,以及该名称空间中包含的嵌套名称空间中
例如:
using LT = LevelOne.LevelTwo
//全局空间和LevelOne空间里可使用LT.NameTwo