1. ホーム
  2. c#

[解決済み] 内部クラスのパブリックメソッドとインターナルメソッド

2023-05-16 09:21:32

質問

internal class Foo
{
  public void Fee()
  {
    Debug.WriteLine("Fee");
  }

  internal void Fi()
  {
    Debug.WriteLine("Fi");
  }
}

クラス全体がすでに内部的なものなので、Fee()とFi()は同じようにアクセスできると思っているのですが。 私は何かを見落としているのでしょうか? このような場合、メソッドにpublicやinternalを選択する理由はあるのでしょうか?

どのように解決するのですか?

この internal class Foo のアクセシビリティをオーバーライドします。 public void Fee() メソッドのアクセス権を上書きし、効果的に内部化します。

この場合、メソッドに internal と public を使い分けると同じ効果があります。 このようなケースで内部メソッドではなくパブリックメソッドを選択する唯一の理由は、将来のバージョンでパブリッククラスへの移行を容易にするためです。