有没有一种方法可以从C#中的多个类继承属性?
可能重复:有没有一种方法可以从C#中的多个类继承属性?,c#,inheritance,properties,multiple-inheritance,C#,Inheritance,Properties,Multiple Inheritance,可能重复: 在下面的示例中,我希望衬衫自动继承材质和颜料类的属性。这在C#中可能吗 我很难提供一个更好的例子,但这正是我想要做的。我意识到我可以创建接口,但这些接口不会自动继承属性。请看,因为我不想每次创建类似于ShirtC#不允许从多个类继承的类时都手动输入所有这些属性 但是你为什么这样做呢?衬衫可以有两个属性:材质和颜料。当您初始化Shirt实例时可以设置这些属性,就像将其传递到具有这些属性集的构造函数中一样。或者创建一个构造函数,您可以在其中传递某些属性,并在该构造函数中实例化材质和颜料
在下面的示例中,我希望
衬衫
自动继承材质
和颜料
类的属性。这在C#中可能吗
我很难提供一个更好的例子,但这正是我想要做的。我意识到我可以创建接口,但这些接口不会自动继承属性。请看,因为我不想每次创建类似于Shirt
C#不允许从多个类继承的类时都手动输入所有这些属性
但是你为什么这样做呢?衬衫可以有两个属性:材质和颜料。当您初始化Shirt实例时可以设置这些属性,就像将其传递到具有这些属性集的构造函数中一样。或者创建一个构造函数,您可以在其中传递某些属性,并在该构造函数中实例化材质和颜料。以dupe结尾,请看这里:之所以这样做,是因为我的场景涉及的属性比您在这个简单示例中看到的要多,来自许多不同的类。此外?在我的真实场景中,将有100多个
Shirt
类,我无法想象为这些类键入所有相同的属性,甚至从一个接口键入。看起来工作太多了。我想也许有更好的方法来弥补我的不足?100件不同等级的衬衫?我只希望Shirt类有1到100个实例。不,不。。。我是说。。。100多个类似于Shirt的类,因为它们需要从其他类继承多个属性。问题是在真实场景中,材质和颜料可能有20个属性。我试图把它分解成最简单的元素。为什么没有人理解这一点?我不想发布300行代码,让你们试着破译它。这是我想做的核心事情。
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;
}
}