9

書き込み専用プロパティを含むインターフェイスを定義すると、次のようになります。

public interface IModuleScreenData
{
    string Name { set; }
}

プロパティが公開されているゲッターを持つことを意図して、明示的に実装しようとします。

public class ModuleScreen : IModuleScreenData
{
    string IModuleScreenData.Name { get; set; }
}

次に、次のエラーが表示されます。

エラー 'IModuleScreenData.Name.get' は、インターフェイス メンバー 'IModuleScreenData.Name' に見つからないアクセサーを追加します

ただし、この代替構文の後では、エラーは多かれ少なかれ予想されます。

public class ModuleScreen : IModuleScreenData
{
    public string Name { get; IModuleScreenData.set; }
}

コンパイルに失敗しました。私がやろうとしていることは実際には不可能だと思います。私は正しいですか、それとも秘密のソース構文がありますか?

4

2 に答える 2

-2

継承クラスでのインターフェイスの実装方法を変更することはできません。それが要点です..プロパティで何か新しいことをする必要がある場合は、継承されたプロパティ固有の実装を参照する新しいプロパティを作成できます。インターフェイスが存在するため、オブジェクトの継承について指定された標準に準拠できます。

更新:考え直して..これを行うことができるはずです....これはうまくコンパイルされます:

public class ModuleScreen : IModuleScreenData
    {
        public string Name { get; set; }
    }
于 2013-05-14T19:46:06.730 に答える