Рассмотрим два метода расширения: < /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
Мобильная версия