C#基础之新语句

语句
除了些许附加的新语句和修改外,C# 的语句和 C++ 的基本一致。以下是新的语句:
foreach
用于迭代数组等集合。 例子:
foreach (string s in array)
Console.WriteLine(s);
lock
在线程中使代码块称为重点部分。
(译注:lock 关键字将语句块标记为临界区,方法是获取给定对象的互斥锁,执行语句,然后释放该锁。lock 确保当一个线程位于代码的临界区时,另一个线程不进入临界区。如果其他线程试图进入锁定的代码,则它将一直等待(即被阻止),直到该对象被释放。)
checked/unchecked
用于数字操作中的溢出检查。 例子:
int x = Int32.MaxValue;
x++; // 溢出检查
{
x++; // 异常
}
unchecked
{
x++; // 溢出
}
下面的语句已修改:(译注:原文如此,疑为作者笔误)
Switch
Switch 语句在 C# 中修改过。
1.现在在执行一条 case 语句后,程序流不能跳至下一 case 语句。之前在C++ 中这是可以的。
例子:
int var = 100;
foreach (string s in array) Console.WriteLine(s);
switch (var)
{
case 100:
Console.WriteLine(""); // 这里没有 break
case 200:
Console.WriteLine("");
break;
}
C++ 的输出:
而在 C# 中你将得到一个编译时错误:2.然而你可以像在 C++ 中一样这么用:
3.你还可以用常数变量作为 case 值:例子:
【C#基础之新语句】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");
break;
}
const string WeekEnd = "Sunday";
const string WeekDay1 = "Monday";
....
string WeekDay = Console.ReadLine();
switch (WeekDay )
{
case WeekEnd:
Console.WriteLine("It's weekend!!");
break; case WeekDay1:
Console.WriteLine("It's Monday");
break;
}

    推荐阅读