您好,登錄后才能下訂單哦!
這篇文章主要講解了“C#3.0中對象初始化器和集合初始化器怎么理解”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“C#3.0中對象初始化器和集合初始化器怎么理解”吧!
關于對象初始化器(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(); } }
問題三:對象初始化器是否可以結合構造函數一起使用?
答案:可以參看如下代碼就可以正常使用:
var cookie3 = new System.Net.Cookie("MyCookie", "Jose") { Comment = "a cookie" };
我們在構造函數中給 Cookie 的名字和值賦了值,在初始化構造器中給 Comment 屬性賦了值。
問題四:構造函數賦值和初始化構造器賦值那個***被執行?
比如下述代碼,結果是那個呢??
static void Main(string[] args) { var cookie = new System.Net.Cookie("MyCookie", "Jose") { Name = "test02", Comment = "a cookie" }; Console.WriteLine(cookie.Name); Console.ReadLine(); }
答案:
構造函數比初始化構造器更早被執行。
上述WriteLine 寫出來的信息為:test02
集合初始化器(Collection Initializers) 的一些問題:
問題一:集合初始化構造器中是否可以構造集合的一項為空值?
答案:可以,參看下述代碼。
問題二:集合初始化構造器是否可以初始化Hashtable ?
答案:可以。這時候相當于用了兩個對象初始化構造器,參看下面代碼:
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中對象初始化器和集合初始化器怎么理解”的內容了,經過本文的學習后,相信大家對C#3.0中對象初始化器和集合初始化器怎么理解這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。