1.選擇語句
if... else..., switch... case...
2.迭代語句
do, for,foreach, while
3.跳轉語句
break:用於終止最近的封閉迴圈或它所在的switch語句。
goto 語句:將程式控制直接傳遞給標記語句。
goto語句乙個通常做法是將控制傳遞給特定的switch-case 標籤或switch 語句的預設標籤;goto 語句還用於跳出深巢狀迴圈。
return:終止它出現在其中的方法的執行並將控制權返回給呼叫方法;還可以返回乙個可選值。
yield:yield return 計算表示式並以列舉數物件的形式返回;expression 必須可以隱式轉換為迭代器的yield 型別。yield break:發出迭代器結束訊號
4. 異常處理語句
throw:顯示引發異常;通常throw 語句與try-catch 或 try-finally 語句一塊使用。當引發異常時,程式查詢處理此異常的catch 語句。還可以使用throw 語句再次引發捕獲的異常。較好的編碼做法是,向再次引發的異常新增資訊以在除錯時提供更多資訊。
有時候在方法中出現了異常,不一定立即把它顯示出來,而是想把這個異常丟擲並讓呼叫這個方法的程式進行捕捉和處理。這時我們就可以使用throw語句了。
throw[表示式]
注意:表示式的型別必須是system.exception或是從system.exception繼承的類的型別。throw 也可以不用帶表示式,但只能用在catch中
static void main(string args)
catch(exception er)
console.readkey();
}static void method1()
catch(exception er)
}static void method2()
try-catch
try-finally
try-catch-finally
5.檢查和未檢查語句
checked:指定已檢查的上下文
unchecked:指定未檢查的上下文
6.lock 語句
lock 關鍵字將語句塊標記為臨界區,方法是獲得給定物件的互斥鎖,執行語句,然後釋放該鎖。
通常,應避免鎖定public型別,否則例項將超出**的控制範圍。最佳做法是定義private物件來鎖定,或private static 物件變數來保護所有例項所共享的資料。
7.fixed語句
傳遞引用型別引數(C 程式設計指南)
引用型別的變數不直接包含其資料 它包含的是對其資料的引用。當通過值傳遞引用型別的引數時,有可能更改引用所指向的資料,如某類成員的值。但是無法更改引用本身的值 也就是說,不能使用相同的引用為新類分配記憶體並使之在塊外保持。若要這樣做,應使用 ref 或 out 關鍵字傳遞引數。為了簡單起見,下面的示例...
型別引數的約束(C 程式設計指南)
在定義泛型類時,可以對客戶端 能夠在例項化類時用於型別引數的型別種類施加限制。如果客戶端 嘗試使用某個約束所不允許的型別來例項化類,則會產生編譯時錯誤。這些限制稱為約束。約束是使用 where 上下文關鍵字指定的。下表列出了六種型別的約束 約束說明 t 結構 型別引數必須是值型別。可以指定除 nul...
型別引數的約束(C 程式設計指南)
約束告知編譯器型別引數必須具備的功能。在沒有任何約束的情況下,型別引數可以是任何型別。編譯器只能假定 object 的成員,它是任何 net 型別的最終基類。有關詳細資訊,請參閱使用約束的原因。如果客戶端 嘗試使用約束所不允許的型別來例項化類,則會產生編譯時錯誤。通過使用where上下文關鍵字指定約...