Как универсальные методы создаются в C #?

Предположим, что у меня есть универсальный метод, поскольку:

void Fun<T>(FunArg arg) {}

Являются ли this.Fun<Feature>и this.Fun<Category>разными реализациями универсального метода?

В общем, как реализуется обобщенный метод? Другой общий аргумент создает другой метод или один и тот же метод вместе с разными метаданными, которые используются во время выполнения?

Подтвердите свой ответ цитатой (s )из спецификации языка.

Кроме того, предположим, что я сделал это:

client.SomeEvent += this.Fun<Feature>;   //line1
client.SomeEvent += this.Fun<Category>;  //line2
client.SomeEvent += this.Fun<Result>;    //line3

затем позже,

client.SomeEvent -= this.Fun<Feature>;   //lineX

Отменяет ли lineXто, что я сделал в line1? Или это еще от чего-то зависит?

6
задан Nawaz 23 April 2012 в 10:53
поделиться