internalアクセス修飾子

C++にもあるアクセス修飾子ですが、C#にはprivate,public,protectedの他にinternalというアクセス修飾子があります。

同一プロジェクト内でだけアクセスのできる修飾子みたいです。

どういうことかというと、同一プロジェクト内であればpublicとまったく同じとみなしてOKでしょう。

そしてdll等のライブラリとして提供するときには外部からは見えないのでアクセスできなくなるといった感じみたいです。

ライブラリ内部専用のアクセス制限をかけたい時に使うと便利そうですね。

またprotected internalというのもあるらしく、こちらは同一プロジェクト内か、派生クラス側でもアクセスができるといった意味みたいです。

こっちは継承さえすればアクセスができてしまうので使い方が難しそうですね。