物件初始化器
student stu= new student();
更方便給物件賦值
集合初始化器
listnum = new list();
list< student > stus= new list
, new student,
};建立乙個物件時可以包含乙個物件初始化器或集合初始化器,用於初始化所建立物件的成員或新建立的集合的元素。使用初始化器可以讓我們的**變得更簡潔。
在以前如果定義了乙個類,並將類例項化,我們會像下面這樣做
public classoec2003
set
}public int y
set
}}
oec2003 o=new oec2003();o.x=2003;
o.y=2004;
使用物件初始化器
public classoec2003
set
}public int y
set
}}var o=new oec2003;
物件初時化器是利用了編譯器對物件中的對外可見的字段或屬性進行按序賦值,在編譯還是隱式呼叫了建構函式,對字段或屬性的賦值可以是乙個或是多個。
集合初始化器會對初始化器中的元素進行按序呼叫,下面是乙個集合初時化器的例子
listnum = new
list
;
應用集合初始化器的物件的型別必須實現了system.collections.generic.icollections介面並指定了確定的t。集合初始化器將依次對每個指定的元素呼叫icollection.add(t)。
有下面這樣乙個類,記錄乙個人的個人資訊
public classoec2003info
set
}public string age
set
}public
list
phonenumbers
}}
以前的做法
var oec2003infos = newlist
();var tmp1= new oec2003info();
tmp1.name = "oec2003";
tmp1.age=100;
tmp1.phonenumbers.add("
tmp1.phonenumbers.add("1592********");
oec2003info.add(tmp1);
var tmp2 = new oec2003info();
tmp2 .name = "oec2003";
tmp2.age=100;
tmp2.phonenumbers.add("1593********");
t***.phonenumbers.add("1594********");
oec2003info.add(tmp2);
使用物件初始化器
var oec2003infos= newlist
},new oec2003info
}};
物件初始化器和集合初始化器
c 語言開發團隊在c 3.0中增加了乙個名為 物件初始化器 object initializer 的特性 它能初始化乙個物件中的所有允許訪問的字段和屬性。別以為這和你沒關係。我們先來看乙個你非常熟悉不過的 user operator new user operator.id 1 operator.p...
C 物件和集合初始化器
為了提供更合理的建構函式,我們不得不進行多次建構函式的過載,使得使用者的呼叫更加簡單。但是這樣的排列組合隨著引數的增加成幾何級增長,的確很不方便。現在有了object and collection initializer 物件和集合初始化器 就方便多了。舉個例子 private class cat ...
C 物件和集合的初始化器
using system using system.collections.generic using system.linq using system.text using system.threading.tasks 商品名稱 public string name 商品描述 public str...