Func 와 의뢰 자투리 코드

2306 단어 delegatefunc
오래 전에 옮 겨 실 었 는데,http://blog.csdn.net/Joyhen/article/details/9699739
오늘 은 통신 적 으로 쓰 는 여러 겹 의 Func 가 어 지 러 워 서 아예 기억 해 보 세 요.자질구레한 코드 는 다음 과 같다.
public delegate int MyDelegate(int a, int b);

public static int function(int a, int b) { return a + b; }

static void Main(string[] args) {
    MyDelegate delfun = new MyDelegate(function);
    MyDelegate delkk = delegate(int a, int b) { return a + b; }; //a,b      
    MyDelegate lambdakk = (a, b) = >a + b;                       //a,b      MyDelegate   
    Func < int,int,int > funkk = (a, b) = >a + b;                //a,b      Func      
    int result = delfun.Invoke(1, 2); //delfun(1, 2);
    Console.WriteLine(result);
    Console.WriteLine(lambdakk(1, 2));
    Console.WriteLine(lambdakk(1, 2));
    Console.WriteLine(funkk(1, 2));

    Func < double,double > myfunc = (x) = >2.0 * x * x - 0.5 * x;
    Console.WriteLine(myfunc(1)); //1.5
    //or
    Console.WriteLine((myfunc = (x) = >2.0 * x * x - 0.5 * x)(1)); //1.5
    //    
    Func<Func< int,int >,Func< int,int >> F = factorial = >n = >n == 0 ? 1 : n * factorial(n - 1);

    //           
    //Func<int, Func<int>> fa = (x) => () => x * 3;
    Func < int,Func < int >> fa = x = >() = >x * 3;
    //Func<int, Func<int, int>> fb = (x) => (y) => x * y;
    Func < int,Func < int,int >> fb = x = >y = >x * y;
    Console.WriteLine("fa:{0}, fb:{1}", fa(10)(), fb(10)(5)); //30,50

    Console.ReadKey();
}
  Func<object, string> fn = x => PrintTaskObjectState(x);
  //Task<string> taskWithInActualMethodAndState = new Task<string>(new Func<object, string>(PrintTaskObjectState),
  //Task<string> taskWithInActualMethodAndState = new Task<string>(fn, "This is the Task state, could be any object");
  Task<string> taskWithInActualMethodAndState = new Task<string>(x => PrintTaskObjectState(x), "This is the Task state, could be any object");
private static string PrintTaskObjectState(object state)
{
     Console.WriteLine(state.ToString());
     return "***WOWSERS***";
}

좋은 웹페이지 즐겨찾기