2014-04-25 68 views
1

爲什麼我無法通過它的接口(ItestClass)訪問基類(testClass)屬性? 我已經創建了接口來避免實際的控件(winforms/wpf)屬性在第三個類(newClass)中可見。如果這是不可能的,還有更好的方法嗎?通過類接口訪問類的屬性

public class testClass : Control, ItestClass 
{ 
    public int Property1 { set; get; } 
    public int Property2 { set; get; } 
    public testClass() { } 
} 
public interface ItestClass 
{ 
    int Property1 { get; set; } 
    int Property2 { get; set; } 
} 

public class newClass : ItestClass 
{ 
    public newClass() 
    { 
     // Why are the following statements are not possible? 
     Property1 = 1; 
     // OR 
     this.Property1 = 1; 
    } 
} 

回答

5

實際上並沒有實現性能的界面 - 你仍然需要在實現類來定義它們:

public class newClass : ItestClass 
{ 
    int Property1 { get; set; } 
    int Property2 { get; set; } 

    // ... 
} 

編輯

C#不支持多繼承,所以你不能有testClass繼承Control和另一個具體的類。不過,你總是可以使用組合。例如:

public interface ItestClassProps 
{ 
    public ItestClass TestClassProps { get; set; } 
} 

public class testClass : Control, ItestClassProps 
{ 
    public ItestClass TestClassProps { set; get; } 

    public testClass() { } 
} 
+0

@mason not'newClass'。 –

+0

事情是我根本不想直接繼承testClass,因爲它也會顯示所有的控件屬性,而我繼承了它的接口來避免這種情況。 – Johnny

+0

所以基本上我需要重新定義他們在第三類(newClass)? – Johnny