匿名函数把 编程步骤放在一个委托中,以后再执行委托,而不是创建全新的方法。下面分别用传统的委托激发事件和匿名函数。就会发现会简单很多哦:
在页面上放置两个button控件。如下(default.aspx)
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="btnDelegate" runat="Server" Text="run under delegate"/>
<asp:Button ID="AnousyNameFunction" runat="server" Text="AnousyNameFunction" />
</div>
</form>
</body>
</html>
在code里面看看匿名函数的使用
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
this.btnDelegate.Click+=new EventHandler(btnDelegate_Click);
this.AnousyNameFunction.Click += delegate(object myDelSender, EventArgs myEvenArgs)
{
Response.Write("<script>alert('sssssssssss');</script>");
};
}
void btnDelegate_Click(object sender, EventArgs e)
{
Response.Write("<script>alert('Delegate methode');</script>");
}
}
看。两种代码实现的效果是不是一样呢。在使用匿名方法是,不需要另外创建一个方法而是把代码放在声明委托的花括号里面,以分号结束。
这样子做是不是很简单呢。如果在控件开发的时候用匿名方法会不会简单点呢。。当然,事件数据类可能会麻烦点哦。再看。