2012-10-15 257 views
1

我已經定義了一個interface,一個abstract類,它實現了該接口和一個派生自抽象類的類。我需要interface,因爲我使用動態加載器來實現插件,並且我創建了一個抽象類來實現所有插件都會有的一些事情。C#接口和抽象類

現在我想實現一個類的字符串作爲名稱。我創建的是這樣的:

public interface IDevicePlugin { 
    string name { get; } 
} 

abstract public class DevicePlugin : IDevicePlugin { 
    abstract public string name { get; } 
} 


public class somePlugin : DevicePlugin, IDevicePlugin { 
    public override string name { 
     get { 
      return "my name"; 
     } 
    } 
} 

但是,這給我的錯誤「無法重寫,因爲‘名’是不是一個性質。」如果我刪除了override,它說,它是隱藏繼承成員的名字「。

如何正確地實現這個

+0

沒有*任何*錯誤在這個,你使用什麼框架? – Tigran

+0

我正在使用Visual Studio 2010,.NET 3.5客戶端配置文件。 –

+0

@你有沒有嘗試過你在***單獨/清理項目中發佈***的代碼? –

回答

3

它沒有錯誤我,但是......我懷疑,這是因爲你重新實現接口拖放的, IDevicePluginsomePlugin:?

public class somePlugin : DevicePlugin { 
    public override string name { 
     get { return "my name"; } 
    } 
} 

它繼承了父類的接口。

+0

我試過了,它似乎沒有什麼區別。 –

+0

@BartFriederichs你使用的是什麼編譯器/工具/等?如前所述,這對我來說實際上並不是錯誤的...我假設它來自第三方插件,或者您還沒有告訴我們什麼。您發佈的代碼**,在單獨的項目**中,是否出錯? –

+0

你說得對。這是一個不同步的程序集。我搞亂了我的項目。不過感謝關於從父類繼承的接口的提示。 –