可能重複:
Direct casting vs 'as' operator?
Casting vs. using the as keyword in the CLRC#:有沒有爲Type(類型)的東西之間的差值Vs東西
在C#中,什麼差別
var obj = (Array)Something
vs
var obj = Something as Array
可能重複:
Direct casting vs 'as' operator?
Casting vs. using the as keyword in the CLRC#:有沒有爲Type(類型)的東西之間的差值Vs東西
在C#中,什麼差別
var obj = (Array)Something
vs
var obj = Something as Array
var obj = (Array)Something
將拋出InvalidCastExcpetion如果Something
不是從System.Array
衍生或不具有System.Array
一個conversion operator。這可以與值類型和引用類型一起使用。
var obj = Something as Array
將返回null
(obj
會null
)如果Something
不是從System.Array
衍生或不具有System.Array
一個conversion operator。這隻能用於引用類型。你需要box你值類型第一。
以及Danijels答案
第一個可以用於任何類型。
as
運算符只能用於引用類型。
這是許多[問題](http://stackoverflow.com/questions/496096/casting-vs-using-the-as-keyword-in-the-clr)在這裏。這些天沒有人閱讀過文檔嗎? – 2010-10-05 08:29:55
在搜索此網站時遇到'[c#] typecast'顯示此問題:http://stackoverflow.com/questions/3724051/what-is-difference-between-normal-typecasting-and-using-as-keyword-closed而其他問題又被關閉了。投票結束 – 2010-10-05 08:33:27