我目前的项目中有三个不同的类,结构如下:
;
我需要一个包含prop1,prop2,prop3,prop4和prop5的对象;但我不想有重复定义。我不想要创建一个像这样的新类:
:
有没有办法(比如接口,抽象类或其他任何东西)可以重构我的旧类,以便我可以拥有一个包含所有5个属性的对象而无需定义新类?
答案 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; }
}