C 的is和as規則

2021-06-04 18:52:33 字數 589 閱讀 8248

is

檢查物件型別的相容性,並返回結果,true或者false;

不會丟擲異常;

如果物件為null,則返回值永遠為 false。

object o = new object();

class a

if (o is a)

//執行第一次型別相容檢查

as

檢查物件型別的相容性,並返回結果,如果不相容就返回 null; 

不會丟擲異常; 

如果結果判斷為空,則強制執行型別轉換將丟擲nullreferenceexception 異常。

object o = new object();

class b

b b = o as b; //執行一次型別相容檢查

if(b!=null)

messagebox.show("b is b's instance.");

縱上比較,is/as 操作符,提供了更加靈活的型別轉型方式,但是as 操作符在執行效率上更勝一籌,

我們在實際的程式設計中應該體會其異同,酌情量才。

遊戲的現實規則和非現實規則

乙個遊戲的系統設計,除了借鑑已有遊戲系統 或者 電影 的特徵之外,主要 於現實世界的規則,暫時稱之為現實規則。同時,為了搬移特徵實現於自己的系統,還要做出一系列的非現實規則,以符合系統本身的需求。其中,於現實世界的規則應該在怎樣的目標下,如何被搬入遊戲系統實現,導致了前一種系統規則的產生,例如 rp...

C和指標 2 2詞法規則

一.字元 1.三字母詞 三元符 trigrph include using namespace std int main 另外 的實際意義是 cout run are u ready 這就是為什麼上面這段 輸出為 預防三字母詞,加轉義符 cout run are u ready 於是就有了正確的結果...

大端規則和小端規則

乙個int型整數,一般情況下佔4個位元組。那麼這4個位元組在記憶體中是怎麼排列的呢?低記憶體位址存放的是低位位元組還是高位子節呢?這就涉及到大端規則和小端規則。這是乙個特別小特別基礎的知識點,在大部分的日常開發中,我們並不需要理會大小端規則。但是當涉及到跨平台網路資料傳輸的時候,就需要考慮大小端規則...