C#3.0新特性小結(2)

c#3.0中除了自動屬性外,還添加:c#

  • 隱含類型局部變量(Local Variable Type Inference)
  • 匿名類型(Anonymous Types)
  • 對象與集合初始化器(Object and Collection Initializers)

    代碼演示實例:數組

  
  
           
  
  
  1. //測試數組  
  2.         public static void TestArray()  
  3.         {  
  4.             //測試數組  
  5.             var intArray = new[] { 120, 110, 119 };  
  6.             var strArray = new[] { "TreeyLee""JFlyZhao""JFlyingchen" };  
  7.  
  8.             var objArray = new[] {   
  9.              //初始化對象  
  10.             new {username="馬鵬飛",userpass="AdminDoucment"},  
  11.             new {username="周靜",userpass="周界"}  
  12.            };  
  13.  
  14.             //對單個變量賦值  
  15.             var seta =intArray[0];  
  16.             var setb = strArray[1];  
  17.             var setc = objArray[1].userpass;//能夠副單個屬性 也可副單個對象objArray[0]  
  18.  
  19.            //打印當前數據  
  20.             Console.WriteLine("seta:" + seta + "\nsetb:" +setb+ "\nsetc:" + setc);  
  21.  
  22.         }  
  23.  
  24.     /// <summary>  
  25.     /// 綜合測試匿名類型  
  26.     /// </summary>  
  27.   public class TotalTestAnnoy  
  28.   {  
  29.       //定義屬性  
  30.       public string username { getset; }  
  31.       public string userpass { getset; }  
  32.       public int age { getset; }  
  33.          
  34.       //定義測試方法  
  35.       public static void TestMethods()  
  36.       {  
  37.           //集合初始化器  
  38.           List<TotalTestAnnoy> TotalList = new List<TotalTestAnnoy> {   
  39.            //不能直接寫new {} 集合器中只能裝TotalTestAnnoy對象,不能var類型  
  40.             new TotalTestAnnoy{username="老顧",userpass="laogu",age=21},  
  41.             new TotalTestAnnoy{username="周靜",userpass="zhoujing",age=26},  
  42.             new TotalTestAnnoy{username="陳凱",userpass="chenkai",age=21}  
  43.           };  
  44.  
  45.           //定義匿名類型  
  46.           var GetTotalList = from newtotallist in TotalList  
  47.                              where newtotallist.age == 21//吧結果定義成一個新對象 只包含兩個屬性newname 和newpass  
  48.                              select new { newname = newtotallist.username, newpass = newtotallist.userpass };  
  49.           //循環打印新對象  
  50.           foreach(var getfirst in GetTotalList)  
  51.           {  
  52.               //打印新實例結果  
  53.               Console.WriteLine("定義新實例newname:"+getfirst.newname+"\nnewpass:\n"+getfirst.newpass);  
  54.           }  
  55.  
  56.       }  
  57.  
  58.         
  59.   } 
相關文章
相關標籤/搜索