日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
C#3.0中對象初始化器和集合初始化器

C#3.0 中對象初始化器(Object Initializers) 和集合初始化器(Collection Initializers) ,就是簡化我們的代碼,讓本來幾行才能寫完的代碼一行寫完。這樣在LINQ的使用中,我們才不會把一個LINQ表達(dá)式寫的巨復(fù)雜無比。

創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè),網(wǎng)頁設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);可快速的進(jìn)行網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,是專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!

由于我看到幾篇講對象初始化器(Object Initializers)和集合初始化器(Collection Initializers) 的文章,都是一個簡單的例子,一些稍稍特殊一點(diǎn)的場景的初始化賦值并沒有涉及,所以我特整理這篇博客。

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

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

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

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

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

 
 
 
  1. public class Person
  2. {
  3. public string FirstName { get; set; }
  4. public string LastName { get; set; }
  5. public int Age { get; set; }
  6. private int test01 = 25;
  7. internal int test02;
  8. }
  9. class Program
  10. {
  11. static void Main(string[] args)
  12. {
  13. Person person = new Person { FirstName = "Scott", LastName = "Guthrie", test02 = 56, };
  14. Console.WriteLine(person.test02);
  15. Console.WriteLine(person.Age);
  16. Console.ReadLine();
  17. }
  18. }

問題三:對象初始化器是否可以結(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é)果是那個呢??

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

答案:

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

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

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

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

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

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

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

 
 
 
  1. public class Person
  2. {
  3. public string FirstName { get; set; }
  4. public string LastName { get; set; }
  5. public int Age { get; set; }
  6. private int test01 = 25;
  7. internal int test02;
  8. }
  9. class Program
  10. {
  11. static void Main(string[] args)
  12. {
  13. List people = new List{
  14. new Person { FirstName = "Scott", LastName = "Guthrie", Age = 32 },
  15. new Person { FirstName = "Bill", LastName = "Gates", test02 = 85},
  16. new Person { FirstName = "Susanne", Age = 32 },
  17. null,
  18. };
  19. Hashtable pp = new Hashtable { 
  20. { 1, new Person { FirstName = "Scott", LastName = "Guthrie", Age = 32 } },
  21. { 2, new Person { FirstName = "Bill", LastName = "Gates", test02 = 85} },
  22. { 3, new Person { FirstName = "Susanne", Age = 32 } },
  23. { 4, null },
  24. };
  25. Console.ReadLine();
  26. }
  27. }

通過這些常見的問題,希望對你有幫助。


新聞標(biāo)題:C#3.0中對象初始化器和集合初始化器
URL地址:http://m.5511xx.com/article/ccojihp.html