2010-07-25 1 views
0

Можно создать дубликат:
Multiple Inheritance in C#Есть ли способ наследования свойств из нескольких классов в C#?

В следующем примере я хочу Shirt автоматически наследуют свойства обоих Material и Pigment классов. Возможно ли это в C#?

public class Material 
{ 
    public enum FabricTypes { Cotton, Wool, Polyester, Nylon } 
    public FabricTypes Fabric { get; set; } 
    public Color Color { get; set; } 
} 

public class Pigment 
{ 
    public enum PigmentQualities { Fine, Average, Poor } 
    public PigmentQualities Quality { get; set; } 
    public Color Color { get; set; } 
} 

public class Shirt : Material //, Pigment 
{ 
    public Shirt() 
    { 
     Fabric = FabricTypes.Cotton; 
     Color = new Color(); 
     //Quality = PigmentQualities.Fine; 
    } 
} 

Мне нелегко предоставить лучший пример, но это, по сути, то, что я пытаюсь сделать. Я понимаю, что могу создавать интерфейсы, но они не будут автоматически наследовать свойства. Смотрите, потому что я не хочу, чтобы каждый раз, когда я создавал класс, похожий на Shirt, я не хочу вручную ударять все эти свойства.

+0

Закрытие, как обман, посмотрите здесь: http://stackoverflow.com/questions/178333/multiple-inheritance-in-c –

ответ

1

C# не позволяет наследовать несколько классов.

Но почему вы так делаете? Рубашка может иметь 2 свойства вместо: Материал и пигмент. Они могут быть установлены, когда вы инициализируете экземпляр Shirt, например, передавая его в конструкторе с указанными наборами свойств. Или создайте конструктор, в котором вы можете передать определенные свойства и создать экземпляр Material и Pigment в этом конструкторе.

+0

Причина, по которой я делаю это, заключается в том, что мой сценарий включает в себя гораздо больше свойств, чем вы видите в этот простой пример, из многих разных классов. Более того? В моем реальном сценарии будет более 100 классов 'Shirt', и я не могу себе представить, чтобы набирать все те же свойства для них или даже из интерфейса. Это просто кажется слишком большой работой. Я думал, что может быть лучший способ - чего-то мне не хватает? – jedmao

+0

100 Рубашка разных классов? Я ожидал бы всего 1, но 100 экземпляров класса Shirt. – XIII

+0

Нет, нет ... Я имею в виду ... более 100 классов, похожих на Shirt, так как им нужно наследовать несколько свойств из других классов. – jedmao

 Смежные вопросы

  • Нет связанных вопросов^_^