アプリケーションを開発しているときに、現在はプライベートなどのプロパティが必要になることがありますが、後で新しいシナリオを処理する必要がある場合は、それをパブリックにする必要があるかもしれません。でも、そうなったとしても、セッターは非公開にしておきたいといつも思っています。次のようなコードを書きたい:
private int A
{
get{return _a;}
private set {_a = value;}
}
コンパイラは、セッターのアクセス修飾子はプロパティよりも制限的であるべきだと不平を言っています。セットのアクセス修飾子を削除する必要がありますが、後でプロパティを公開する必要がある場合は、そのセッターも公開します。
これはエラーではなく警告としてよかったと思いませんか?