溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#3.0中對象初始化器和集合初始化器怎么理解

發(fā)布時間:2021-12-01 09:53:32 來源:億速云 閱讀:144 作者:iii 欄目:編程語言

這篇文章主要講解了“C#3.0中對象初始化器和集合初始化器怎么理解”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“C#3.0中對象初始化器和集合初始化器怎么理解”吧!

關(guān)于對象初始化器(Object Initializers) 的一些問題:

問題一: 對象初始化器允許只給部分值賦值么?即不給其中一些值賦值

答案:允許;參考后面的代碼。

問題二:對象初始化器允許給internal 的成員賦值?(私有成員肯定不用想了,肯定不能賦值。)

答案:允許;參考下面的代碼。

public class Person  {  public string FirstName { get; set; }  public string LastName { get; set; }  public int Age { get; set; }  private int test01 = 25;  internal int test02;  }  class Program  {  static void Main(string[] args)  {  Person person = new Person { FirstName = "Scott", LastName = "Guthrie", test02 = 56, };  Console.WriteLine(person.test02);  Console.WriteLine(person.Age);  Console.ReadLine();  }  }

問題三:對象初始化器是否可以結(jié)合構(gòu)造函數(shù)一起使用?

答案:可以參看如下代碼就可以正常使用:

var cookie3 = new System.Net.Cookie("MyCookie", "Jose") { Comment = "a cookie" };

我們在構(gòu)造函數(shù)中給 Cookie 的名字和值賦了值,在初始化構(gòu)造器中給 Comment 屬性賦了值。

問題四:構(gòu)造函數(shù)賦值和初始化構(gòu)造器賦值那個***被執(zhí)行?

比如下述代碼,結(jié)果是那個呢??

static void Main(string[] args)  {  var cookie = new System.Net.Cookie("MyCookie", "Jose") { Name = "test02", Comment = "a cookie" };  Console.WriteLine(cookie.Name);  Console.ReadLine();  }

答案:

構(gòu)造函數(shù)比初始化構(gòu)造器更早被執(zhí)行。

上述WriteLine 寫出來的信息為:test02

集合初始化器(Collection Initializers) 的一些問題:

問題一:集合初始化構(gòu)造器中是否可以構(gòu)造集合的一項為空值?

答案:可以,參看下述代碼。

問題二:集合初始化構(gòu)造器是否可以初始化Hashtable ?

答案:可以。這時候相當于用了兩個對象初始化構(gòu)造器,參看下面代碼:

public class Person  {  public string FirstName { get; set; }  public string LastName { get; set; }  public int Age { get; set; }  private int test01 = 25;  internal int test02;  }  class Program  {  static void Main(string[] args)  {  List<Person> people = new List<Person>{  new Person { FirstName = "Scott", LastName = "Guthrie", Age = 32 },  new Person { FirstName = "Bill", LastName = "Gates", test02 = 85},  new Person { FirstName = "Susanne", Age = 32 },  null,  };  Hashtable pp = new Hashtable {   { 1, new Person { FirstName = "Scott", LastName = "Guthrie", Age = 32 } },  { 2, new Person { FirstName = "Bill", LastName = "Gates", test02 = 85} },  { 3, new Person { FirstName = "Susanne", Age = 32 } },  { 4, null },  };  Console.ReadLine();  }  }

感謝各位的閱讀,以上就是“C#3.0中對象初始化器和集合初始化器怎么理解”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對C#3.0中對象初始化器和集合初始化器怎么理解這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI