Проблема множественного наследования C # Generics - PullRequest
4 голосов
/ 27 мая 2010

Может ли кто-нибудь помочь мне с этой проблемой синтаксиса в C #? Я понятия не имею, как это сделать.

class SomeClass<T> : SomeOtherClass<T> where T : ISomeInterface , IAnotherInterface
{
...
}

Я хочу, чтобы SomeClass наследовал от SomeOtherClass и IAnotherInterface , а T наследовал только ISomeInterface

Кажется, проблема в том, что ключевое слово where все испортило, так что компилятор считает, что и ISomeInterface, и IAnotherInterface должны оба наследоваться T.

Эта проблема очень раздражает, и я думаю, что решение - это какая-то скобка, но я попытался найти такую, которая работает. Кроме того, переключение порядка двух элементов, унаследованных от SomeClass, не работает, поскольку унаследованный класс всегда должен предшествовать любым интерфейсам. Я не смог найти решения на страницах MSDN C # generic и не могу поверить, что я первый, у кого возникла эта проблема.

Спасибо, любая помощь очень ценится!

1 Ответ

16 голосов
/ 27 мая 2010
class SomeClass<T>: SomeOtherClass<T>, IAnotherInterface where T: ISomeInterface
{
...
}
...