Как реализовать инструмент, имеющий свойство интерфейса?C#

Место общения программистов C#
Ответить
Anonymous
 Как реализовать инструмент, имеющий свойство интерфейса?

Сообщение Anonymous »

Я хочу, чтобы у класса было свойство, принадлежащее другому классу, но я хочу, чтобы и внешний, и внутренний классы реализовывали интерфейс, причем внешний интерфейс имел свойство для внутреннего.
Вот код, который я пробовал:

Код: Выделить всё

interface IMainBody
{
ISubProperty subProperty { get; set; }
}

interface ISubProperty
{
string somethingHere { get; set; }
}

class MainBody : IMainBody // Error CS0738  'MainBody' does not implement interface member 'IMainBody.subProperty'. 'MainBody.subProperty' cannot implement 'IMainBody.subProperty' because it does not have the matching return type of 'ISubProperty'.
{
public SubProperty subProperty { get; set; }
}

class SubProperty : ISubProperty
{
public string somethingHere { get; set; }
}
Я знаю, что мог бы использовать такой универсальный интерфейс

Код: Выделить всё

interface IMainBody
where T : ISubProperty
{
T subProperty { get; set; }
}

interface ISubProperty
{
string somethingHere { get; set; }
}
Но я бы предпочел не делать этого, потому что это означает, что код станет очень запутанным, если таких свойств будет больше одного.
Любой знаете какие-нибудь другие обходные пути?

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

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

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

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

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

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