2015-07-10 62 views
-1

是否有可能以某種方式覆蓋BaseClass中的屬性。我想要做的是以下。也許我應該在子類中使用另一個屬性名稱。通過實現其接口c覆蓋baseClass中的屬性#

public interface IRow 
{ 
    int Id { get; set; } 
} 

public class MySpecificRow : IRow 
{ 
    public int Id { get; set; } 
    public int SomethingSpecific { get; set; } 
} 

public class BaseClass 
{ 
    protected IRow Row; 

    public BaseClass(IRow row) 
    { 
     Row = row; 
    } 
} 

public class SubClass : BaseClass 
{ 
    public SubClass(IRow row) : base(row) { } 
    private MySpecificRow Row { get { return (MySpecificRow) base.Row; } } 
} 

最後一行拋出我隱藏基類Row屬性的錯誤。

回答

1

要回答您的具體問題,我相信您可以使用「新」關鍵字。見https://msdn.microsoft.com/en-us/library/ms173153.aspx

這就是說,這通常不是一個好主意。我不知道你的代碼是否只是一個簡單的例子,或者你是否有額外的限制。

+0

是的,代碼是一個簡化的例子。我想隱藏基類屬性,因爲接口只公開一些屬性。爲什麼這通常不是一個好主意? – ekenman