Как сделать обработчик событий делегата универсальным в C#?C#

Место общения программистов C#
Ответить
Anonymous
 Как сделать обработчик событий делегата универсальным в C#?

Сообщение Anonymous »

У меня есть пользовательский элемент управления ASP.NET, и я определяю внутри него некоторые обработчики событий, чтобы использовать эти события в любой веб-форме, содержащей экземпляр этого пользовательского элемента управления.
Объявление в файле пользовательский контроль:

Код: Выделить всё

public delegate void BeforeSaveHandler(DataEntry sender, EventArgs e, ref bool cancel, ref object obj);
public event BeforeSaveHandler BeforeSave;
protected virtual void OnBeforeSave(DataEntry sender, BasicEventArgs e, ref bool cancel, ref object obj)
{
if (BeforeSave != null)
{
BeforeSave(this, e, ref cancel, ref obj);
}
}
использую его в своей веб-форме:

Код: Выделить всё

DataEntry.BeforeSave += new BeforeSaveHandler(DataEntry_BeforeSave);
private void DataEntry_BeforeSave(DataEntry sender, EventArgs e, ref bool cancel, ref object obj)
{
throw new NotImplementedException();
}
Я пытаюсь изменить обработчик событий в пользовательском элементе управления, чтобы он был универсальным, следующим образом:

Код: Выделить всё

public delegate void BeforeSaveHandler(DataEntry sender, EventArgs e, ref bool cancel, ref T obj);
чтобы я мог передать тип объекта в веб-форме при создании экземпляра обработчика событий, но поскольку невозможно передать общий тип в общий, я не знаю, как изменить общедоступный event BeforeSaveHandler BeforeSave; и OnBeforeSave внутри пользовательского элемента управления для достижения того, чего я хочу.
Может ли кто-нибудь помочь мне в этом?

Подробнее здесь: https://stackoverflow.com/questions/790 ... neric-in-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»