C#语言概述
1.型别
型别宣告可以指定新型别的名称和成员。有五种 C# 的型别分类可由使用者定义:类别型别、结构型别、接口型别、列举型别和委派型别。
分类 |
说明 | |
实值 |
简单型别 |
带正负号的整数:sbyte、short、int、long |
不带正负号的整数:byte、ushort、uint、ulong | ||
Unicode 字符:char | ||
IEEE 浮点数:float、double | ||
高精度十进制数:decimal | ||
布尔值:bool | ||
列举型别 |
型式为 enum E {...} 的使用者定义型别 | |
结构型别 |
型式为 struct S {...} 的使用者定义型别 | |
参考 |
类别型别 |
所有其它型别的最终基底型别:object |
Unicode 字符串:string | ||
型式为 class C {...} 的使用者定义型别 | ||
界面型别 |
型式为 interface I {...} 的使用者定义型别 | |
数组型别 |
一维及多维,例如 int[] 和 int[,] | |
委派型别 |
型式为 delegate T D(...) 的使用者定义型别 |
2.运算子
依优先级 (由高到低) 列出运算子分类:同一分类中的运算子具有相同的优先级。
分类 |
表达式 |
说明 |
主要 |
x.m |
成员存取 |
x(...) |
方法和委派引动过程 | |
x[...] |
数组和索引子存取 | |
x++ |
后置递增 | |
x-- |
后置递减 | |
new T(...) |
对象和委派建立 | |
new T[...] |
数组建立 | |
typeof(T) |
取得 T 的 System.Type 物件 | |
checked(x) |
在 checked 内容中评估表达式 | |
unchecked(x) |
在 unchecked 内容中评估表达式 | |
一元 |
+x |
识别值 |
-x |
否定 | |
!x |
逻辑否定 | |
~x |
位否定 | |
++x |
前置递增 | |
--x |
前置递减 | |
(T)x |
将 x 明确地转换为型别 T | |
乘法类 |
x * y |
乘法 |
x / y |
除法 | |
x % y |
余数 | |
加法类 |
x + y |
加法、字符串串连、委派组合 |
x – y |
减法、委派移除 | |
移位 |
x << y |
向左移位 |
x >> y |
向右移位 | |
关系和型别测试 |
x < y |
小于 |
x > y |
大于 | |
x <= y |
小于或等于 | |
x >= y |
大于或等于 | |
x is T |
如果 x 为 T 就传回 true,否则传回 false | |
x as T |
传回型别为 T 的 x,如果 x 不是 T 则传回 null | |
相等 |
x == y |
等于 |
x != y |
不等于 | |
逻辑 AND |
x & y |
整数字元 AND、布尔逻辑 AND |
逻辑 XOR |
x ^ y |
整数字元 XOR、布尔逻辑 XOR |
逻辑 OR |
x | y |
整数字元 OR、布尔逻辑 OR |
条件式 AND |
x && y |
只有在 x 为 true 时才评估 y |
条件式 OR |
x || y |
只有在 x 为 false 时才评估 y |
条件式 |
x ? y : z |
如果 x 为 true 就评估 y,如果 x 为 false 则评估 z |
设定 |
x = y |
设定 |
x op= y |
复合设定;支持的运算子为: *= /= %= += -= <<= >>= &= ^= |= |
3. 陈述式
下表列出 C# 的陈述式,以及每个陈述式的范例
陈述式 |
范例 |
区域变量宣告 |
static void Main() { |
区域常数宣告 |
static void Main() { |
运算陈述式 |
static void Main() { |
if 陈述式 |
static void Main(string[] args) { |
switch 陈述式 |
static void Main(string[] args) { |
while 陈述式 |
static void Main(string[] args) { |
do 陈述式 |
static void Main() { |
for 陈述式 |
static void Main(string[] args) { |
foreach 陈述式 |
static void Main(string[] args) { |
break 陈述式 |
static void Main() { |
continue 陈述式 |
static void Main(string[] args) { |
goto 陈述式 |
static void Main(string[] args) { |
return 陈述式 |
static int Add(int a, int b) { static void Main() { |
throw 和 try 陈述式 |
static double Divide(double x, double y) { static void Main(string[] args) { |
checked 和 unchecked 陈述式 |
static void Main() { |
lock 陈述式 |
class Account public void Withdraw(decimal amount) { |
using 陈述式 |
static void Main() { |