C#にはinternalという、「アセンブリが同じクラスのみから参照できる」という便利なアクセス修飾子があります。あるライブラリを書く際に気になったのですが、internalクラスの中のメソッドをpublicで宣言するべきなのか、internalで宣言するべきなのかで迷いました。どちらでも参照のスコープは同じですからね。
しかし、結論としては、publicが良いみたいです。
理由としては、宣言しているアセンブリ以外でも公開したいという場合に、クラスをpublicに変更すれば、メソッドがライブラリの外にも公開されるようになるからです。もしメソッドがinternalですと、いちいちinternalをpublicなどに変更しなければなりません。永久にライブラリの外へ公開したくないメソッドであるときのみ、internalにすればよいでしょう。
- stack over flowに同様の答えがありました。=> URL