C#3.0新特性小结(2)

c#3.0中除了自动属性外,还添加:

  • 隐含类型局部变量(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.   } 

 

本文转自chenkaiunion 51CTO博客,原文链接:http://blog.51cto.com/chenkai/765463



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值