有没有办法在不创建新方法的情况下附加事件处理程序?我怀疑它看起来像这样:
TextBox1.TextChanged += new void(object s, EventArgs arg)
{
MessageBox.Show(arg.HashCode.ToString())
};
TextBox1.TextChanged+= (s,arg)=>{MessageBox.Show(arg.HashCode.ToString())};
您可以使用匿名方法,如MSDN 中所述:
// Create a handler for a click event
button1.Click += delegate(System.Object o, System.EventArgs e)
{ System.Windows.Forms.MessageBox.Show("Click!"); };
您可以改为声明一个非匿名方法:
void TextBox1_TextChanged(object s, EventArgs arg)
{
MessageBox.Show(arg.HashCode.ToString());
}
void HandleEvent()
{
TextBox1.TextChanged += TextBox1_TextChanged;
}
您可以定义一个方法,我认为在这种情况下更具可读性:
TextBox1.TextChanged += TextBox1_TextChanged;
private void TextBox1_TextChanged(object s, EventArgs arg)
{
MessageBox.Show(arg.GetHashCode().ToString());
}
这可能有用:
this.TextBox1.TextChanged += (sender, eventargs) => Console.WriteLine("Do something here !!");