在开发博客,在线代码示例,以及(最近)甚至是一本书中,我一直对类似的代码code之以鼻:
var y = x as T;
y.SomeMethod();
或更糟糕的是:
(x as T).SomeMethod();
这对我来说没有意义。如果您确定x类型为T,则应使用直接强制转换:(T)x。如果不确定,可以使用as但需要检查null后再执行某些操作。上面的代码所做的就是将(有用的)InvalidCastException变成(没用的)NullReferenceException。
我是唯一认为这是公然滥用as关键字的人吗?还是我错过了明显的事情,而上述模式确实有意义?
哈士奇WWW
相关分类