C# - 拥有来自多个类的对象

时间:2016-05-30 00:31:25

标签: c#

我目前的项目中有三个不同的类,结构如下:

;

我需要一个包含prop1,prop2,prop3,prop4和prop5的对象;但我不想有重复定义。我想要创建一个像这样的新类:

:

有没有办法(比如接口,抽象类或其他任何东西)可以重构我的旧类,以便我可以拥有一个包含所有5个属性的对象而无需定义新类?

2 个答案:

答案 0 :(得分:0)

绝对接口,请注意,对于理论正确性而言,您将实现方法,而不是属性,属性在C#中是不同的。 (链接:Properties in C#

public interface IBaseClass
{
    public string GetProperty1();
    public string GetProperty2();
    public string GetProperty3();
}

public interface IC1
{
    public string GetProperty4();
}

public interface IC2
{
    public string GetProperty5();
}


public class Implementation : IBaseClass, IC1, IC2
{
    public string GetProperty1()
    {
        return "Value";
    }
    public string GetProperty2()
    {
        return "Value";
    }
    public string GetProperty3()
    {
        return "Value";
    }
    public string GetProperty4()
    {
        return "Value";
    }
    public string GetProperty5()
    {
        return "Value";
    }


}

这样做的好处是,实现类被迫定义这样的方法。

答案 1 :(得分:0)

这会有帮助吗?

    class BaseClass
    {
        public virtual string prop1 { get; set; }
        public virtual string prop2 { get; set; }
        public virtual string prop3 { get; set; }
        public virtual string prop4 { get; set; }
        public virtual string prop5 { get; set; }
    }
    class C1 : BaseClass
    {
        public override string prop4 { get; set; }
    }

    class C2 : BaseClass
    {
        public override string prop5 { get; set; }
    }