1

interface、そのインターフェイスを実装するabstractクラス、および抽象クラスから派生するクラスを定義しました。interface動的ローダーを使用してプラグインを実装しており、すべてのプラグインが持ついくつかのものを実装する抽象クラスを作成したため、必要です。

ここで、クラス全体の文字列を名前として実装したいと考えています。私が作成したのはこれです:

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と、継承されたメンバー「名前」が隠されていると表示されます。

これを正しく実装するにはどうすればよいですか?

4

1 に答える 1

3

私にとってはエラーではありませんが...これは、インターフェースを再実装しているためだと思われます。をドロップ, IDevicePluginsomePluginます:

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

親クラスからインターフェイスを継承します。

于 2012-10-15T12:09:06.003 に答える