C 類和物件(三) 匿名型別

2021-08-10 18:38:33 字數 1104 閱讀 2412

var關鍵字,它用於表示隱式型別化的變數。

var與

new關鍵字一起使用時,可以建立匿名型別。匿名型別只是乙個繼承自

object

且沒有名稱的類。該類的定義從初始化器中推斷,類似於隱式型別化的變數。如果需要乙個物件包含某個人的姓氏、中間名和名字,則宣告如下:

var captain = new

firstname = "james",

middlename = "t",

lastname = "kirk" 這會

生成乙個

包含 firstname、

middlename

和 lastname

屬性 的 物件。 如果 建立 另乙個 物件, 如下 所示:

var doctor = new

firstname = "leonard",

middlename = string. empty,

lastname = "mccoy"

那麼captain和

doctor

的型別就相同。例如,可以設定

captain=doctor

。只有所有屬性都匹配,才能設定

captain=doctor。

如果所設定的值來自於另乙個物件,就可以簡化初始化器。如果已經有乙個包含firstname、

middlename

和lastname

屬性的類,且有該類的乙個例項(

person

),captain

物件就可以初始化為:

var captain = new

person. firstname,

person. middlename,

person. lastname

person物件的屬性名應投射到新物件名

captain

,所以captain

物件應有

firstname

、middlename

和lastname

屬性。這些新物件的型別名未知。編譯器為型別「偽造」了乙個名稱,但只有編譯器才能使用它。我們不能也不應使用新物件上的任何型別反射,因為這不會得到一致的結果。

匿名物件和匿名類

一,匿名物件 匿名物件 沒有名字的物件 new car 匿名物件其實就是定義物件的簡寫格式。car c new car c.run 用匿名物件來書寫以上 new car run 匿名物件的使用方法 1 當物件對方法僅進行一次呼叫的時候,就可以簡化成匿名物件。如乙個 物件需要進行呼叫方法2次,用匿名物...

匿名型別與匿名物件

var匿名型別 推斷型別 var可代替任何型別,編譯器會根據上下文來判斷你到底是想用什麼型別,類似 object,但是效率比object高點。我們可以賦予區域性變數推斷 型別 var而不是顯式型別。var 關鍵字指示編譯器根據初始化語句右側的表示式推斷變數的型別。推斷型別可以是內建型別 匿名型別 使...

c dynamic動態型別和匿名類

dynamic expando new system.dynamic.expandoobject 動態型別字段 可讀可寫 expando.id 1 expando.name test string json utils.convertjson.jsonencode expando 輸出 listfi...