Неоднозначный вызов между двумя расширением C# Extension Generic Methode One, где T: класс и другие, где t: structC#

Место общения программистов C#
Ответить
Anonymous
 Неоднозначный вызов между двумя расширением C# Extension Generic Methode One, где T: класс и другие, где t: struct

Сообщение Anonymous »

Рассмотрим два метода расширения: < /p>

public static T MyExtension(this T o) where T:class
public static T MyExtension(this T o) where T:struct
< /code>

и класс: < /p>

class MyClass() { ... }
< /code>

Теперь вызовите метод расширения в экземпляре вышеуказанного класса: < /p>

var o = new MyClass(...);
o.MyExtension(); //compiler error here..
o.MyExtension(); //tried this as well - still compiler error..
< /code>

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

Подробнее здесь: https://stackoverflow.com/questions/401 ... e-tclass-a
Ответить

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

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

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

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

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