最佳答案
可能的复制品:
使用 CLR 中的“ as”关键字进行转换 vs
我最近学到了一种不同的施法方法
SomeClass someObject = (SomeClass) obj;
人们可以使用这样的语法:
SomeClass someObject = obj as SomeClass;
如果 obj 不是 SomClass,它似乎返回 null,而不是抛出类强制转换异常。
我发现,如果强制转换失败并尝试访问 some Object 变量,这可能导致 NullReferenceException。所以我想知道这个方法背后的原理是什么?为什么应该使用这种方式而不是(旧的)方式进行强制转换呢? 这似乎只是将失败的强制转换问题“深入”到代码中。