【发布时间】:2013-02-20 22:22:47
【问题描述】:
假设有一个接口A 和一个实现该接口的类的变量“x”。现在我可以执行这些了:
var a = (A) x;
或者:
var a = x as A;
我知道在失败的情况下,第一条语句会抛出InvalidCastException,第二条语句会返回null。但是还有其他区别吗?尤其是表现?
【问题讨论】:
-
已经在这里提问了:stackoverflow.com/questions/132445/…
-
您尝试对此进行基准测试吗?
-
Jon Skeet 对此stackoverflow.com/questions/496096/…有一个传奇的答案
-
@Soner any 的 Jon Skeet 答案具有传奇色彩。 :)