private void Btn_DelegateExamples_Click(object sender, EventArgs e) { //Instantiate delegate with named Methods DoOperation op = NamedVoidMethod; DoOperationWithReturn opReturn = NamedMethodWithStringReturn; //Invoke Delegate methods op("Required Par"); var returnedValueFromDelegate = opReturn("Required Par"); Console.WriteLine(returnedValueFromDelegate); //Instantiate with Anonymus method op = delegate(string par) { Console.WriteLine(par); }; op("3-You wrote this in anonymus method oh yeahh!!!!"); // Finally ..... Instantiate with lambda Instrucction // hey hey it's diferent to Lambda expression opReturn = par => { Console.WriteLine("4-Call Lambda Instruction!!!!"); return("Returned from delegate Method with lambda Instruction }:) "); }; var returnedValueFromDelegateLambdaInst = opReturn("Execute Lambda String Method!!!!"); Console.WriteLine(returnedValueFromDelegateLambdaInst); }
private void Btn_LambdaExample_Click(object sender, EventArgs e) { const string msg = "Lambda Example "; DoOperation lambdaVoid = par => Console.WriteLine(par); DoOperationWithReturn lambdaReturnStringInstruction = par => { return(par); }; DoOperationWithReturn lambdaReturnStringExpression = par => par; DoOperationWithReturnAndTwoParameters lambdaReturnStringInstructionTwoParameters = (par1, par2) => { return(par1 + par2); }; lambdaVoid(msg + 1); Console.WriteLine(lambdaReturnStringInstruction(msg + 2)); Console.WriteLine(lambdaReturnStringExpression(msg + 3)); Console.WriteLine(lambdaReturnStringInstructionTwoParameters(msg, 4.ToString())); }