.Net Framework 3.5中的新增特性

一、.Net Framework 3.5中的新增特性:

1、隐式类型化的变量

     例如 Var = 5;Linq就使用这个功能。

2、自动实现属性

     例如 public int MyProperty {get;set}

3、对象和集合初始化器

     例如 MyStructure mystructure = new MyStructure() {MyProperty1 = 10,MyProperty2 = 20}

             List myInt = new List() {1,2,3}

4、Linq,可以查询对象、数据集、SqlServer数据库、XML等

 

二、泛型类的特性

1、默认值:default关键字用于将泛型初始化为null或0

     例如 T obj = default(T);

2、约束:定义泛型类型的类时,如果要求实例化的类必须实现某个接口时,可以加上约束。

     例如 public interface ImyInterface {...}

             public class BaseClass : ImyInterface {...}

             public class MyClass

                       where TBaseClass : ImyInterface {...}

 

            Main()

            {

                //只有实现了ImyInterface接口的类才能去声明MyClass泛型类

                MyClass myClass = new MyClass();

            }

     还可以合并多个约束,例如:where T:I1,new(),意思是必须继承I1接口且必须有一个默认构造函数。

3、继承:泛型类可以继承泛型接口也可以派生于一个泛型类。

     例如:public class MyClass:IMyInterface

              public class MyClass:Base

              public class MyClass:Base

4、静态成员:泛型类的静态成员只能在类的一个实例中共享。

     例如:public class MyClass

              {

                   public static int x;

              }

              MyClass.x = 1;

              MyClass.x = 2;

              两个实例的值互不影响。

三、泛型接口

      泛型可以定义接口,接口中的方法可以带泛型参数

      例如:public interface IMyInterface

               {

                    int MyFunction(T val);

               }   

四、泛型方法

      void func(ref T val);

      调用方式:1、func(ref 1);

                     2、func(1);   

五、泛型委托

      例如:

        public delegate T MyFunc(T t);

        public static T getVal(T t, MyFunc f)
        {
            T retVal = default(T);

            retVal = f(t);

            return retVal;
        }

     调用方式:

     1、匿名方法调用方式:

          string j = MyClass.getVal("liangyuhui",delegate(string s){return "I am " + s;});//j=I am liangyuhui

     2、λ表达式方式:

          int i = MyClass.getVal(100, p => { return p + 100; });  //i=200 

     采用委托引用的方法,可以实现任何逻辑。

 

 

 

你可能感兴趣的:(开发语言)