object objTest = 11;
??? if ( objTest is int )
??? {
??????? int nValue = (int )objTest;
??? }
?
使用is關鍵字。。不是關鍵字is前面的必須派生或是本類型才可以用嘛??難道object派生自int??
5 回答

手掌心
TA貢獻1942條經驗 獲得超3個贊
is關鍵字只是將前面的操作符“嘗試”強制轉換為后面的操作符(注意是嘗試)。成功返回true,失敗就直接拋出異常
可以使用as關鍵詞,此關鍵詞直接將前面的操作符強制轉換為后面的操作符(非嘗試),失敗返回null,不會拋出異常。

嗶嗶one
TA貢獻1854條經驗 獲得超8個贊
Object是所有的基類,你那樣定義,只是隱式轉換成int類型;也可以這么寫:
???????? ?object objTest = 11;?????????? int nValue = (int)objTest;?????????? Console.WriteLine(nValue);?????????? Console.ReadLine();
結果是:11;
經過反匯編編譯后:
IL--0003處自動轉換int32型.
知道為什么了吧!

慕雪6442864
TA貢獻1812條經驗 獲得超5個贊
這里我說說is的使用 A is B(A是對象名 B是類名) 代表的意思是判斷對象A是否為B類的實例,對A到底是不是沒有要求,只用于判斷,然后返回ture或false,也就是說你可以寫任意一個類對象if(anyObject is int)?判斷它是否為int.
- 5 回答
- 0 關注
- 439 瀏覽
添加回答
舉報
0/150
提交
取消