c 中as和強制轉換區別

2021-09-19 15:25:14 字數 370 閱讀 6717

as和強制轉換之間最大的區別就在於如何處理使用者自定義的轉換。操作符 as和 is 都只檢查被轉換物件的執行時型別,並不執行其他的操作。如果被轉換物件的執行時型別既不是所轉換的目標型別,也不是其派生型別,那麼轉型將告失敗。但是強制轉型則會使用轉換操作符來執行轉型操作,這包括任何內建的數值轉換(如:long轉int)。

一般情況我們應該先考慮使用as進行型別轉換,然後再考慮使用is,最後才考慮使用強制轉換。

as是用來型別轉換的,例如兩個類:a和b ;b b = new b();

不用as,進行強制轉換,如果型別不匹配,會引發轉換異常a a = (a) b;

使用as,型別不匹配,不會引發異常,會返回乙個null,此時 a = null ;a a = b as a;

C的強制轉換和C 的強制轉換

c的強制轉換 type 其中,type為型別描述符,如int,float等。為表示式。經強制型別轉換運算子運算後,返回乙個具有type型別的數值,這種強制型別轉換操作並不改變運算元本身,運算後運算元本身未改變,例如 int nvar 0xab65 char cchar char nvar 上述強制型...

C 中As和強制轉換的總結

1.1.1 摘要 c 是一門強型別語言,一般情況下,我們最好避免將乙個型別強制轉換為其他型別,但有些時候難免要進行型別轉換。先想想究竟哪些操作可以進行型別轉換 先不考慮.net提供的parse 一般我們都有以下選擇 使用as操作符轉換,使用傳統c風格的強制轉型 使用is來做乙個轉換測試,然後再使用a...

C 中型別強制轉換

c 中有4種強制轉換 const cast,static cast,dynamic cast,reinterpret cast,以下將分別介紹 1.const cast 形式const cast expression 用來修改型別的const或volatile屬性,除了const或volatile修...