почему (отправитель, e) => SomeAction () работает на winforms, а не в asp.net - PullRequest
0 голосов
/ 25 октября 2010

У меня есть следующий код:

btnTest.Click += (sender,e) => SomeAction()

почему этот код работает в WinForms, а не в asp.net. В asp.net мне пришлось сделать следующее:

btnTest.Click += new EventHandler(SomeAction);

целевой платформой в обоих случаях является .net 4.0

Ответы [ 2 ]

1 голос
/ 25 октября 2010

Возможно, вы пытаетесь позвонить

btnTest.Click += (sender,e) => SomeAction() 

изнутри метода Page_Load или другого обработчика событий? В этом случае параметры «отправитель» и «е» уже объявлены и могут вызывать конфликт.

Измените определение на:

btnTest.Click += (s,ea) => SomeAction();

Возможно, вы захотите переслать аргументы в вашу функцию:

btnTest.Click += (s,ea) => SomeAction(s, ea);
0 голосов
/ 25 октября 2010

Хорошо работает ASP.NET 4.0 для меня:

public partial class _Default : System.Web.UI.Page
{
   protected void Page_Load(object sender, EventArgs e)
   {
   }

   private void SomeFunc()
   {
      Button1.Click += (sender, e) => SomeAction();
   }

   private void SomeAction()
   {
   }
}
...