第4章 型別基礎

2022-03-25 07:19:18 字數 834 閱讀 9217

4.1 所有型別的基型別:system.object

公有方法:equals, gethashcode, tostring, gettype

保護方法:memberwiseclone, finalize

clr要求所有的物件(指引用物件)都要用new操作符來建立,new操作符產生 newobj il指令,執行過程如下:

1、從託管堆(managed heap)中分配指定型別所需的記憶體空間

2、初始化物件的兩個附加成員(overhead members),乙個為指向型別方法表的指標,另乙個為syncblockindex欄位,clr中使用該字段來進行執行緒同步控制,該字段的某些位還用作垃圾收集時的標記,fcl中system.object型別預設的gethashcode方法也用到了該字段

3、傳入指定的引數,呼叫型別的例項構造器

4、完成操作後返回乙個指向新物件的引用

4.2 型別轉換

is操作符用來檢查物件是否和給定型別相容,並返回true或false。as操作符用來判斷物件是否相容,如果相容則返回乙個指向同乙個物件的非空指標,不相容則返回null。因為as操作符同時包含了型別檢查和轉換的操作,適當的使用as操作符可以減少clr對型別檢查的次數。is和as操作都不會產生異常,使用as操作符時通常需要檢查返回的結果是否為null

4.3 命名空間與程式集

using 指示符允許我們為乙個型別或命名空間建立別名

c#中命名空間隱含為公有,不能對其使用訪問修飾符

多個屬於同一命名空間的型別可能被實現在多個程式集中,而乙個程式集也可以包含位於不同命名空間中的型別

C 基礎 第4章 型別基礎

4.1 本章主要內容 所有型別都從system.object派生 型別轉化 命名空間和程式集 無 演示 執行時的相互關係 無 演示 using system 該型別隱式派生自system.object internal class employee system.object internal cl...

CLR via C 第4章 型別基礎

1.clr最重要的特性之一就是型別安全 在執行時,clr總是知道物件的型別是什麼,呼叫gettype 方法即可知道物件的確切型別。這也就是為什麼gettype 方法是基類object中的非虛方法,因為如果可以重寫gettype 方法,那麼他返回的就不一定是當前的物件型別,違背了型別安全。2.使用 i...

第4章 復合型別

第 4 章 復合型別 一 陣列 潛規則 只有在定義陣列時才能使用初始化。不能將乙個陣列賦給另乙個陣列。如果初始化為,則表示第乙個元素被設定為1,其他元素被設定為0。二 字串 注意要點 在確定儲存字串所需的最短陣列時,記得將結尾的空字元計算在內。如果要顯示部分字串,只需將需要的字串的結尾標記為 0 每...