请考虑以下代码:
void Handler(object o, EventArgs e)
{
// I swear o is a string
string s = (string)o; // 1
//-OR-
string s = o as string; // 2
// -OR-
string s = o.ToString(); // 3
}
Run Code Online (Sandbox Code Playgroud)
三种类型的铸造之间有什么区别(好吧,第三种不是铸造,但是你得到了意图).应该首选哪一个?
可能重复:
使用CLR中的'as'关键字进行转换
这两个演员之间究竟有什么区别?
SomeClass sc = (SomeClass)SomeObject;
SomeClass sc2 = SomeObject as SomeClass;
Run Code Online (Sandbox Code Playgroud)
通常,它们都应该显式转换为指定的类型?