物件初始化器和集合初始化器

2021-06-29 03:32:28 字數 1125 閱讀 4450

c#語言開發團隊在c# 3.0中增加了乙個名為"物件初始化器"(object initializer)的特性 ,它能初始化乙個物件中的所有允許訪問的字段和屬性。別以為這和你沒關係。我們先來看乙個你非常熟悉不過的**。

user operator=new user();

operator.id=1;

operator.pwd=1;

operator.name="操作員"

以前是不是大家都像上面一樣寫**。現在c#3.0以後我們有了更簡單的方法。

user operator = new user(id = 1,

,name = "操作員",pwd= 1;);

更方便的我們接著看。用了上面的**還有乙個明顯的好處就是。c#3.0以前,如果乙個實體中有3個屬性,以前我們再給其初始化時,可能由於需要只給乙個或兩個屬性初始化,那麼我們在寫建構函式的時候就不得不寫多個不同引數的建構函式。而現在,我們只需要一句話即可應付不同的初始化情況。

初始化多個物件屬性的時候,物件初始化器幫了不少忙。那麼初始化多個物件的時候,我們也自然有了集合初始化器。如下。

我們先看乙個應用了物件初始化器而還沒用集合初始化器的一段程式。

ilistusers= new list();

users.add(new user);

users.add(new user);

users.add(new user);

應用了集合初始化器之後就更加的簡潔了。

ilistusers= new list);

new user);

new user);

}

這個初始化器,雖說很簡單也很小。但是我們的應用卻太頻繁了。的確能減少很多繁瑣的步驟。其實真正初始化器的意義還不僅僅在此,我們想想,如果沒有初始化器,那麼最近學過的匿名函式是從哪來蹦出來的。

var a=new

等等!有什麼變化?

你看,以前我們要先例項化乙個物件,才能給屬性賦值。它是必要條件。而現在,顯然不是了。

物件初始化器與集合初始化器

物件初始化器 使用物件初始化器,可以在建立時直接向物件賦值,無需顯示的呼叫物件的建構函式。利用這個技術可發人員可以建立匿名型別,顯著的減少編寫物件初始化語句的 new p 不採用物件初始化器寫的 user new user user.id 1 user.pwd 123 user.name 孫悟空 採...

C 物件和集合初始化器

為了提供更合理的建構函式,我們不得不進行多次建構函式的過載,使得使用者的呼叫更加簡單。但是這樣的排列組合隨著引數的增加成幾何級增長,的確很不方便。現在有了object and collection initializer 物件和集合初始化器 就方便多了。舉個例子 private class cat ...

C 初始化器和建構函式初始化器

初始化器分為物件初始化器和集合初始化器。下面一一介紹。物件初始化器 物件初始化器的作用,簡單點說就是可以使我們初始化乙個類的 變得更簡潔。比如下面這個類 class person public int age public string address 我們要初始化它並對它賦值的話通常要這樣 per...