代码:
int x = Int32.MaxValue; x++; // 溢出检查
{
x++; // 异常
}
unchecked
{
x++; // 溢出
}
下面的语句已修改:(译注:原文如此,疑为作者笔误)
Switch
Switch 语句在 C# 中修改过。
1.现在在执行一条 case 语句后,程序流不能跳至下一 case 语句。之前在 C++ 中这是可以的。
例子:
复制内容到剪贴板
代码:
| int var = 100; switch (var) { case 100: Console.WriteLine("<Value is 100>"); // 这里没有 break case 200: Console.WriteLine("<Value is 200>"); break; } |
| error CS0163: Control cannot fall through from one case label ('case 100:') to another |
| switch (var) { case 100: case 200: Console.WriteLine("100 or 200<VALUE is 200>"); break; } |
例子:
复制内容到剪贴板
代码:
| const string WeekEnd = "Sunday"; const string WeekDay1 = "Monday"; .... string WeekDay = Console.ReadLine(); } |
委托让我们可以把函数引用保存在变量中。这就像在 C++ 中使用 typedef 保存函数指针一样。
委托使用关键字 delegate 声明。看看这个例子,你就能理解什么是委托:
例子:
复制内容到剪贴板
代码:
| delegate int Operation(int val1, int val2); public int Add(int val1, int val2) { return val1 + val2; } public int Subtract (int val1, int val2) { return val1- val2; } public void Perform() |

