【泛型和強制類型轉換】
編譯器允許您將一般類型參數顯式強制轉換到其他任何接口,但不能將其轉換到類:
但是,您可以使用臨時的 Object 變量,將一般類型參數強制轉換到其他任何類型:
不用說,這樣的顯式強制類型轉換是危險的,因為如果為取代一般類型參數而使用的類型實參不是派生自您要顯式強制轉換到的類型,則可能在運行時引發異常。要想不冒引發強制類型轉換異常的危險,一種更好的辦法是使用 is 和 as 運算符,如代碼塊 6 所示。如果一般類型參數的類型是所查詢的類型,則 is 運算符返回 true;如果這些類型兼容,則 as 將執行強制類型轉換,否則將返回 null。您可以對一般類型參數以及帶有特定類型實參的一般類使用 is 和 as。
參考:http://msdn.microsoft.com/zh-cn/library/ms379564(VS.80).aspx