相关疑难解决方法(0)

C#"as"演员与经典演员

可能重复:
使用CLR中的'as'关键字进行转换

我最近了解了一种不同的演员方式.而不是使用

SomeClass someObject = (SomeClass) obj;
Run Code Online (Sandbox Code Playgroud)

可以使用以下语法:

SomeClass someObject = obj as SomeClass;
Run Code Online (Sandbox Code Playgroud)

如果obj不是SomeClass,它似乎返回null,而不是抛出一个类转换异常.

我看到如果转换失败并且我尝试访问someObject变量,这可能导致NullReferenceException.所以我想知道这种方法背后的理由是什么?为什么要使用这种方式而不是(旧)方式 - 它似乎只是将失败的演员问题"更深"地转移到代码中.

c# casting

132
推荐指数
4
解决办法
9万
查看次数

C#与铸造的区别和?

可能重复:
c#中的以下强制转换之间有什么区别?

在C#中,铸造对象或使用as关键字有区别吗?希望这段代码能说明我的意思......

String text = "Hello hello";
Object obj = text; 

String originalCast = ((String)obj).ToUpper();
String originalAs = (obj as String).ToUpper();
Run Code Online (Sandbox Code Playgroud)

谢谢

:)

c# casting

39
推荐指数
4
解决办法
2万
查看次数

标签 统计

c# ×2

casting ×2