.Net Framwork 3.5 学习

来源:互联网 发布:movie开源数据集 编辑:程序博客网 时间:2024/06/13 19:28

很长一段时间没学习了,现在重新从运维工作转回到研发上来,发现自己还是在吃老本,不学习不行啊。

记下来备查。

原文:LINQ体验系列文章导航http://www.cnblogs.com/lyj/archive/2008/03/25/1119671.html

一、C#  3.0 特性


1、自动属性

支持:public  string Name {get;set;}

这样定义的属性Name是null;


2、隐含类型局部变量名

引入了关键字 var,仅限于局部变量,变量类型编译器编译时自己判断;

初始化语句必须为表达式;

比如:var str = "hi" ;


3、匿名类型

比如:var p= new {id=1,name="abcd"}

等同于新建类类型为object,示例为 p的类;


新建数组:

var intArray = new[] { 2, 3, 5, 6 };

var strArray = new[] { "Hello", "World" };


3、对象与集合初始化器

直接使用{}来初始化

比如:User user = new User { Id = 1, Name = "YJingLee", Age = 22 };


4、扩张方法

    public static class TestThis
    {
        public static void Test(this Program a,string abc)
        {
            Console.WriteLine(a.GetType().ToString()+abc);
        }
        public static void Test(this int i)
        {
            Console.WriteLine(i);
        }
    }

这样Program  的实例就有了方法Test(string abc)可以用了

整形就有了Test方法可以使用;

注意必须是静态类的静态类型


5、Lambda表达式和Lambda表达式树


Lambda表达式格式:(参数列表)=>表达式或语句块
具体意义:定义Lambda接受参数列表,运行表达式或语句块返回表达式或语句块的值传给这个参数列表。

var inString = list.FindAll(s => s.Indexof("YJingLee") >= 0);