今天闲来无事想学习一下3.0开始使用的LINQ to SQL

但看其相关文章的时候遇到了很多3。0的新特性,罢然,先学习3.0新特性在再学习他了。

1.隐式类型化本地变量

        就像类似javascript那样,变量无需特制定类型,统一使用使用"var"关键字来声明局部变量,而不再需要指明变量的确切类型了,变量的确切类型可通过声明变量时的初始值推断出来

 例如:var age=15;

            var list=new int[2]{1,2};

   //CLR 会把他们解析成 int age=15;  int[]list=new int[2]{1,2}

2.匿名类型

      通过匿名类型,我们可以简单使用new { 属性名1=值1, 属性名2=值2, ..... , 属性名n=值n }的形式直接在函数中创建新的类型

                   var person=new {userName="zhangsan",age=18};

                    Console.WriteLine(string.Format("userName:{0}  age:{1}",person.userName,person.age));

                   输出:userName:zhangsan  age:18

3.隐式类型化数组

                     例:    

         var list = new[] { new { userName = "zhangsan", age = 15 }, new { userName = "lisi", age = 18 } };
            Console.WriteLine(string.Format("{0}的年龄是{1}",list[0].userName,list[0].age));

4.对象构造

               

  public class Man

{

    public string userName { set; get; }//编译器自动为你生成getset操作以及字段,并且你不能使用字段也不能自定义getset操作,不过你可以分别定义getset的访问级别,就好比是个标识 告诉CLR

       public int age { set; get; }

}

 

   public class Person
    {
           public Man man1{set;get;}

           public Person(){

          man1=new Man();     

        }
    }

  

public class Test

{

   static void Main(string[] args)
        {

                      

            var  person = new Person() {  man1 = {userName="lisi",age=122 } };

            Console.WriteLine(string.Format("我叫{0} 年龄{1}",person.man1.userName,person.man1.age));

         //输出我叫lisi  年龄122   

    }

}

 

                

 

posted on 2009-06-09 11:07  冷傲残痕  阅读(202)  评论(1编辑  收藏  举报