淺學CLR via C 筆記之型別轉換

2022-10-10 09:18:12 字數 933 閱讀 9145

我們都知道clr最重要的乙個特性就是型別安全,它在執行時就知道物件型別。

但我們會經常用到將一種型別轉換成另一種型別,clr也允許將物件轉成他的實際型別,或者是它的基型別。

在c#中,支援隱士轉換成它的基型別。

型別轉換會用到以下方式:

1

public

class

entitybase24

}5public

class

user68

}910.....

11public

static

void

main()

12

其中(user) obj用了強制轉換,如果原始型別不是user的時候,會丟擲異常。

obj as user會先判斷型別,然後才會轉換,如果原始型別不是user的時候,會返回null,反而不會丟擲異常。

有的時候為了處理異常,需要加一些判斷,比如使用如下判斷語句,先判斷型別是否正確:

1

if(obj is

user)

這樣也可以實現,但是我們可以換另外一種給方式去寫,會更簡單。

因為對obj as user而言 會先判斷型別,然後才會轉換,那這樣的話就會跟外層的is語句有重複判斷的部分,在單條語句不會引起很大的效能方面的損耗,但是如果在乙個比較大的迴圈語句中這樣大量的重複判斷,效能損耗將是乙個很大的影響。

1

var user3 = obj as

user;

2if(user3 is

null)3

如上寫法,依據as語法的特性,判斷返回結果的方式。

淺學CLR via C 筆記之型別轉換

我們都知道clr最重要的乙個特性就是型別安全,它在執行時就知道物件型別。但我們會經常用到將一種型別轉換成另一種型別,clr也允許將物件轉成他的實際型別,或者是它的基型別。在c 中,支援隱士轉換成它的基型別。型別轉換會用到以下方式 1 public class entitybase24 5public...

CLR via C 學習筆記 型別

類的記憶體分配 關鍵字 abstract 類 該類不能構建例項 方法 屬性 事件 表示構建派生型別的例項之前派生型別必須重寫並實現這個成員 常量 字段 不允許 virtual 類 不允許 方法 屬性 事件 表示這個成員可以由派生類重寫 常量 字段 不允許 override 類 不允許 方法 屬性 事...

型別基礎 CLR Via C 筆記一

一.所有型別都是從system.obejct派生 1.下面兩個型別定義是完全一致的 1 class employee 4class employee system.object 2.system.object的公共例項方法 a.equals 判斷物件是否具有相等的值 b.gethashcode 返回...