c#3.0中除了自動屬性外,還添加:
隐含類型局部變量(Local Variable Type Inference)
匿名類型(Anonymous Types)
對象與集合初始化器(Object and Collection Initializers)
代碼示範執行個體:
//測試數組
public static void TestArray()
{
//測試數組
var intArray = new[] { 120, 110, 119 };
var strArray = new[] { "TreeyLee", "JFlyZhao", "JFlyingchen" };
var objArray = new[] {
//初始化對象
new {username="馬鵬飛",userpass="AdminDoucment"},
new {username="周靜",userpass="周界"}
};
//對單個變量指派
var seta =intArray[0];
var setb = strArray[1];
var setc = objArray[1].userpass;//可以副單個屬性 也可副單個對象objArray[0]
//列印目前資料
Console.WriteLine("seta:" + seta + "\nsetb:" +setb+ "\nsetc:" + setc);
}
/// <summary>
/// 綜合測試匿名類型
/// </summary>
public class TotalTestAnnoy
{
//定義屬性
public string username { get; set; }
public string userpass { get; set; }
public int age { get; set; }
//定義測試方法
public static void TestMethods()
{
//集合初始化器
List<TotalTestAnnoy> TotalList = new List<TotalTestAnnoy> {
//不能直接寫new {} 集合器中隻能裝TotalTestAnnoy對象,不能var類型
new TotalTestAnnoy{username="老顧",userpass="laogu",age=21},
new TotalTestAnnoy{username="周靜",userpass="zhoujing",age=26},
new TotalTestAnnoy{username="陳凱",userpass="chenkai",age=21}
};
//定義匿名類型
var GetTotalList = from newtotallist in TotalList
where newtotallist.age == 21//吧結果定義成一個新對象 隻包含兩個屬性newname 和newpass
select new { newname = newtotallist.username, newpass = newtotallist.userpass };
//循環列印新對象
foreach(var getfirst in GetTotalList)
{
//列印新執行個體結果
Console.WriteLine("定義新執行個體newname:"+getfirst.newname+"\nnewpass:\n"+getfirst.newpass);
}
}
}
本文轉自chenkaiunion 51CTO部落格,原文連結:http://blog.51cto.com/chenkai/765463