#c# #webforms
Вопрос:
Почему Visual Studio автоматически создает пустой обработчик событий для моего пользовательского элемента управления вместо того, чтобы следовать обычному шаблону, учитывающему сам делегат события?
Шаги:
- Отредактируйте
aspx
разметку страницы, добавив
lt;foo:MyControl ID="bar" runat="server" OnMyEvent="" /gt;
В тот момент, когда я нажал =
после ввода «OnMyEvent», VS ведет себя как обычно, отображая всплывающее окно с опцией Create new event
.
- Я выбираю этот параметр, но не вижу того, что я ожидал бы автоматически сгенерировать в своем коде
ожидаемый:
protected void bar_OnMyEvent(object sender, MyEventArgs e) { }
фактический:
protected void bar_OnMyEvent() { }
Мой пользовательский класс управления-это:
public class MyEventArgs : EventArgs { ... } public delegate void MyEventHandler(object sender, MyEventArgs e); public partial class MyControl : System.Web.UI.UserControl { public event MyEventHandler MyEvent; protected virtual void OnMyEvent(MyEventArgs e) =gt; MyEvent?.Invoke(this, e); ... private void SomethingThatHappens() { ... OnMyEvent(new MyEventArgs(aValue)); } }