文章目录
 

Blog

DevNotes_20190210

  |   DevNotes   |   No comment
json可以泛型读取!(声明顺序不影响;字段和属性都可以)
AClass[] AClassArray = JsonMapper.ToObject<AClass[]>(File…..);
List<AClass> AClassList = JsonMapper.ToObject<List<AClass>>(File…..);也可以;

Action是系统预定义的一种没有返回类型的delegate,
加泛型来让它接收参数
Action<int,string> a = …;
Func是系统预定义的一种有1个返回的delegate,
Func<int>是说delegate返回的是int
多个泛型的时候,最后一个代表返回的类型;
static void CommonSort<T>(T[] sortArray, Func<T,T,bool> compareMethod){
}

多播委托只能得到最后一个方法的结果,所以一般返回void;

匿名方法:
Func<int,int,int>plus = delegate(int arg1,int arg2){
    return arg1+arg2;
};
只能用那个委托来调用
lambda表达式 一般用于代替匿名方法,即一个lambda表达式也是定义了一个方法;
Func<int ,int,int> plus = (arg1,arg2) =>{
    return arg1+arg2;
    …some expressions…
};
Func<int,int> test2 = a =>a+1;//参数只有一个的时候可以不加括号,当函数体的语句只有一句的时候可以不加大括号和return;
Func<int,int> test2 = (a) =>{return a+1;};

事件还是委托,但事件只能当做类的成员来声明;
public delegate void MyDelegate();
public event MyDelegate mydelegate;
事件为委托提供了一个 发布/订阅 的机制,即 它是一种具有特殊签名的委托;
    事件是一种受限制的委托,用 += -=来操作,
 event ActionHandler Tick;
No Comments

Post A Comment