is/as
is轉換規則:
1. 檢查對象類型的兼容性,並返回結果true(false);
2.不會拋出異常;
3.如果對象為null,剛返回false;
示例:
object o = "abc";
if (o is string) //執行第一次類型兼容性檢查
{
string s = (string)o; //執行第二次類型兼容性檢查,並轉換
MessageBox.Show("轉換成功!");
}
else
{
MessageBox.Show("轉換失敗!");
}
as轉換規則:
1.檢查對象類型的兼容性,並返回轉換結果,如果不兼容則返回null;
2.不會拋出異常;
3.如果結果判斷為空,則強制執行類型轉換將拋出NullReferenceException異常;
示例:
object o = "abc";
string s = o as string; //執行第一次類型兼容性檢查,並返回結果
if (s != null)
MessageBox.Show("轉換成功!");
else
MessageBox.Show("轉換失敗!");
注:as比is少執行一次兼容性檢查,性能可能會高一點點。