2016-05-30 19 views
1

我有三個不同的類別在我目前的項目結構如下目標:C# - 有多個類

class BaseClass { 
    public string prop1; 
    public string prop2; 
    public string prop3; 
} 
class C1 : BaseClass { 
    public string prop3; // Common with class C2 
    public string prop4; 
} 
class C2 : BaseClass { 
    public string prop3; // Common with class C1 
    public string prop5; 
} 

我需要有一個對象,其中包括PROP1,PROP2,prop3,prop4和prop5;但我不想有重複定義。我要創建一個新的類是這樣的:

class NewClass { 
    public string prop1; 
    public string prop2; 
    public string prop3; 
    public string prop4; 
    public string prop5; 
} 

有沒有一種方法(如接口或抽象類,或其他任何東西),我可以修改我的老班到讓我能有沒有定義一個新類的所有5個屬性的對象?

+0

'類C2:在C#中的多重繼承]的C1' – Plutonix

+1

可能的複製(http://stackoverflow.com/questions/178333/multiple-inheritance-in-c-sharp) –

回答

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"; 
    } 


} 

做這樣的好處是,實現類是被迫來定義這樣的方法。

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; } 
    } 
+0

謝謝,但沒有!在這種情況下,C2有prop4作爲成員,我不想要它。我不希望C2能夠訪問prop4。 – hosjay

+0

你的問題說:「我需要一個包含prop1,prop2,prop3,prop4和prop5的對象;」。你能解釋一下你的意思嗎?從你的問題中,我認爲任何類的對象都應該擁有所有的屬性。 –