C#基礎之新語句

weixin_34234823發表於2016-09-28

語句
除了些許附加的新語句和修改外,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("<Value is 100>"); // 這裡沒有 break
case 200:
Console.WriteLine("<Value is 200>");
break;
}

C++ 的輸出:<Value is 100><Value is 200>
而在 C# 中你將得到一個編譯時錯誤:2.然而你可以像在 C++ 中一樣這麼用:
3.你還可以用常數變數作為 case 值:例子:

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();
switch (WeekDay )
{
case WeekEnd:
Console.WriteLine("It's weekend!!");
break;case WeekDay1:
Console.WriteLine("It's Monday");
break;
}

相關文章