Как бороться с CS1721, когда мне действительно нужно наследовать от двух классов? - PullRequest
4 голосов
/ 28 июня 2011

В моем коде C # я хочу класс CustomIdentity, который наследуется от классов System.MarshalByRefObject и System.Security.Principal.GenericIndentity.

Однако, когда я пытаюсь написать такое наследование, C # возражает с CS1721 с ошибкой , говоря, что я не могу напрямую наследовать от более чем одного класса.

Теперь в этом случае это легко преодолеть - я унаследую от IIdentity, добавлю GenericIdentity переменную-член и переопределю все IIdentity методы через эту переменную-член.

Но как бы я поступил, если бы хотел наследовать от двух классов с огромным набором методов?

Ответы [ 2 ]

3 голосов
/ 28 июня 2011

Ты не. Вы не можете.

Это не поддерживается в C # или .NET.

Вы используете множественную реализацию интерфейса и не более одиночное (не object) наследование. В большинстве случаев даже единичное наследование сильно злоупотребляется; p

Чтобы поглотить методы, вам придется использовать какую-то инкапсуляцию. Методы расширения также предоставляют способ разделения методов между типами для полноты.

2 голосов
/ 28 июня 2011

Невозможно наследовать от нескольких классов, как вы знаете ... на самом деле единственный способ - это делать так, как вы говорите, и использовать интерфейсы.Или поменяйте язык программирования на тот, который поддерживает множественное наследование, но я уверен, что это не поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...