重複の可能性:
C# インターフェイスの非パブリック メンバー
私が持っているとしましょう
internal interface IInterface
{
int MyProperty { get; set; }
}
public class MyClass : IInterface
{
internal int MyProperty
{
get
{
throw new NotImplementedException();
}
set
{
throw new NotImplementedException();
}
}
}
私はこれを得る:
インターフェイス メンバーを実装しません。パブリックではないため、インターフェイス メンバーを実装できません。
修正方法はわかっていますが、なぜ C# でインターフェイス メンバーをプライベートにできないのか疑問に思っています。
ライブラリを書いているときなど、何度もクラスをパターンに合わせたいと思っていましたが、メンバーを公開する必要はありませんでした。そして何よりも、インターフェイス自体は公開されていません:X
注: プライベート インターフェイス メンバーを実装する方法を尋ねているわけではありませんが、この決定の背後にある設計ロジックは知っています。適切な複製が見つかりませんでした。
更新:元のスレッドよりも、別のスレッドの回答からのこのコードサンプルは、ほとんどの説明の回答よりもよく説明しています。またはさらに良いことに、@JonSkeetからこれ