Можно ли объявить универсальное событие в vb.NET? - PullRequest
0 голосов
/ 27 октября 2010

Я пытался написать:

Event EventName(Of T)()

Но Visual Studio сообщает мне, что «параметры типа не могут быть указаны в этом объявлении».

Возможно ли такое объявление, или мне придется поставить T в качестве обычного аргумента?

1 Ответ

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

Ключевое слово Event похоже на объявление поля в вашем классе.Вы не ожидаете найти:

Private i as GenericClass(Of T)

внутри класса, который еще не является универсальным.

Вы можете объявить Делегат с универсальным типом:

Public Delegate Sub Blah(Of T)()

Но тогда вы бы объявили, что ваше событие имеет конкретный тип:

Public Event EventName As Blah(Of Int16)

Или, если ваш класс был универсальным, вы бы могли объявить событие кактакже и generic:

Public Delegate Sub Blah(Of T)()


Public Class Referral(Of U)


    Public Event EventName As Blah(Of U)

End Class

Конечно, все эти пустые списки аргументов выглядят довольно подозрительно.Мы можем добиться большего, если вы сможете предоставить больше кода / больше объяснений того, что вы пытаетесь сделать.

...