Func 와 의뢰 자투리 코드
오늘 은 통신 적 으로 쓰 는 여러 겹 의 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***";
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
extjs 소스 분석 - 012(Funtion 확장)this : function() { var me = this, args = arguments; fcn.target = me; fcn.method = method; return (fcn.apply(scope || me...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.