VB.net 2010 视频教程 VB.net 2010 视频教程 VB.net 2010 视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
  • C#教程之委托 lambda表达式浅显理解

  • 2018-12-17 09:43 来源:未知

新疆25选7开奖号码 www.d1dx0.cn 方法不能跟变量一样当参数传递,怎么办,C#定义了委托,就可以把方法当变量一样传递了,为了简单,匿名方法传递,省得再声明方法了;再简单,lambda表达式传递,比匿名方法更直观。

public delegate int delegateArithmetic(int a, int b);

//委托作为参数,方法传递给委托
public int result(int x,int y,delegateArithmetic delAri)
{
return delAri(x, y);
}

public int Sum(int m,int n)
{
return m + n;
}

private void button2_Click(object sender, EventArgs e)
{
textBox2.Text = "";
//委托作为参数,方法传递给委托
var r1 = result(8, 5, Sum);
textBox2.Text = textBox2.Text+"把方法传递给delegate,两数相加结果:" + r1.ToString()+"\r\n";

//委托作为参数,匿名方法传递给委托
var r2 = result(8, 5, delegate (int a, int b) { return a - b; });
textBox2.Text = textBox2.Text + "匿名方法传递给delegate,两数相减结果:" + r2.ToString() + "\r\n";

//委托作为参数,lambda表达式传递给委托
var r3 = result(8, 5, (x, y) => { return x * y; });
textBox2.Text = textBox2.Text + "lambda表达式传递给delegate,两数相乘结果:" + r3.ToString() + "\r\n";

//委托作为参数,简易lambda表达式传递给委托
var r4 = result(8, 5, (x, y) => x * y);
textBox2.Text = textBox2.Text + "简易lambda表达式传递给delegate,两数相乘结果:" + r4.ToString() + "\r\n";
}

 

lambda表达式就是简化了的匿名方法,C#编译器编译的时候就把lambda表达式编译成匿名方法。

相关教程
  • 回复@遇得:难道你认为他们没有深入领会 2019-05-24
  • 天津通报5起违反中央八项规定精神典型问题 2019-05-24
  • 俄官员说俄韩领导人将讨论同朝鲜三方合作项目 2019-05-23
  • 【大家谈】干部轻装上阵有了“护身符” 2019-05-23
  • 机场高速收费之争 春城壹网 七彩云南 一网天下 2019-05-23
  • 有没有上城客在越南的踪迹? 2019-05-22
  • 海上洄游时 北海狗 连续两周深睡眠 2019-05-22
  • 2018高考志愿填报规则:五大误区家长需谨慎 2019-05-21
  • 罗超毅:中国棋牌发展新蓝图 2019-05-21
  • 他们是中国军人,他们2个月排除380万平方米雷场 2019-05-21
  • 今天明天后天 雷雨赶不走闷热天 2019-05-20
  • “中国城市互联网生活消费·成都指数”论坛 2019-05-20
  • 亚冠-埃神破门于海摆乌龙 上港1-3鹿岛晋级告急 2019-05-20
  • Facebook公关掌门离职 是应对隐私丑闻干将 2019-05-19
  • 匹夫有责之一百一十一 (原创首发) 2019-05-19
  • 834| 845| 534| 677| 272| 495| 997| 72| 25| 380|