1.0=>1.0cons=>Anonymouse=>Lambda=>縮
(大於被換成>了)
1.0=>1.0cons=>Anonymouse=>Lambda=>縮
static func => 非static func //cons-可用instact function
obj.Invoke(3); => obj.Invoke(3); //cons-省略Invoke
obj=delegate(double n){return n>x;} //Type Inference,不用定義回傳值,因為Type Inference 型別推論,會依{}去推論.
//匿名委派-不用取名子
//可以把func寫在裡面,不用再另外寫
//closure-允許匿名方法存取外部變數
obj = (double n)=>{n>x} //Lambda:delegate不見了,多了=>
obj = n =>n>x //(double n) ->(n) compiler自己知道type,所以省略* -> n 單一參數不需括號
//單行statement可省略大括號
=======================================func跟instact同一個class
1 public delegate double DD(double n);
2 DD obj;
31 obj =func;
4 obj.Invoke(3);
31 public static double func(double n)
{}
===========================================func跟instact不在同一個class
1 public delegate dobule DD(double n);
2 DD obj;
31 obj = C1.func;
4 obj.Invoke(3);
31 public class C1
{
public static double func(double n)
{ }
}
===========================================1.0.cons
1 public delegate double DD(double n);
2 DD obj;
31 C1 cc = new C1();
obj =cc.func; //這裡能用非static了
4 obj(3); //這裡能省略Invoke
31 public class C1
{
public double func(double n) //這裡能用非static了
{}
}
===========================================2.0.匿名委派
1 public delegate double DD(double n);
2 DD obj;
int x=5;
31 obj=delegate(double n) //匿名委派-可以把func寫在裡面
{
//closure-允許匿名方法存取外部變數
return x; //能讀這個{}外面的變數
}
4 obj(3);
=====================================Anonymous Method變身Lambda
1 public delegate double DD(double n);
2 DD obj;
31 obj = (double n)=> //delegate不見了,多了=>
{
xxxx
}
4 obj(3);
=========================================縮.
1 public delegate double DD(double n);
2 DD obj;
31 obj = n => //(double n) ->(n) compiler自己知道type,所以省略* -> n 單一參數不需括號
//{ //單行statement可省略大括號
xxxx
//}
4 obj(3);
*Type Inference 型別推論
*單一參數不需括號
*單行statement可省略大括號
======================================event
http://xingulin.tumblr.com/
1.0=>1.0cons=>Anonymouse=>Lambda=>縮
static func => 非static func //cons-可用instact function
obj.Invoke(3); => obj.Invoke(3); //cons-省略Invoke
obj=delegate(double n){return n>x;} //Type Inference,不用定義回傳值,因為Type Inference 型別推論,會依{}去推論.
//匿名委派-不用取名子
//可以把func寫在裡面,不用再另外寫
//closure-允許匿名方法存取外部變數
obj = (double n)=>{n>x} //Lambda:delegate不見了,多了=>
obj = n =>n>x //(double n) ->(n) compiler自己知道type,所以省略* -> n 單一參數不需括號
//單行statement可省略大括號
=======================================func跟instact同一個class
1 public delegate double DD(double n);
2 DD obj;
31 obj =func;
4 obj.Invoke(3);
31 public static double func(double n)
{}
===========================================func跟instact不在同一個class
1 public delegate dobule DD(double n);
2 DD obj;
31 obj = C1.func;
4 obj.Invoke(3);
31 public class C1
{
public static double func(double n)
{ }
}
===========================================1.0.cons
1 public delegate double DD(double n);
2 DD obj;
31 C1 cc = new C1();
obj =cc.func; //這裡能用非static了
4 obj(3); //這裡能省略Invoke
31 public class C1
{
public double func(double n) //這裡能用非static了
{}
}
===========================================2.0.匿名委派
1 public delegate double DD(double n);
2 DD obj;
int x=5;
31 obj=delegate(double n) //匿名委派-可以把func寫在裡面
{
//closure-允許匿名方法存取外部變數
return x; //能讀這個{}外面的變數
}
4 obj(3);
=====================================Anonymous Method變身Lambda
1 public delegate double DD(double n);
2 DD obj;
31 obj = (double n)=> //delegate不見了,多了=>
{
xxxx
}
4 obj(3);
=========================================縮.
1 public delegate double DD(double n);
2 DD obj;
31 obj = n => //(double n) ->(n) compiler自己知道type,所以省略* -> n 單一參數不需括號
//{ //單行statement可省略大括號
xxxx
//}
4 obj(3);
*Type Inference 型別推論
*單一參數不需括號
*單行statement可省略大括號
======================================event
http://xingulin.tumblr.com/
留言
張貼留言