クラスのデフォルト
トップレベルのクラス(通常のクラス)を定義したとき、アクセス修飾子を省略すると internal になります。
class Person // ← internal がデフォルト
{
}
「同じプロジェクト内からは使えるけど、外部のプロジェクトからは見えない」という扱いです。
クラスのメンバー(フィールドやメソッド)のデフォルト
クラスの中の変数やメソッドを定義したとき、アクセス修飾子を省略すると private になります。
class Person
{
string name; // ← private がデフォルト
void SayHello() // ← private がデフォルト
{
Console.WriteLine("こんにちは!");
}
}
「クラスの外からはアクセスできない」状態になります。
基本的にアクセス修飾子は書いたほうがいい
もちろん、デフォルトを知っていれば省略しても動きます。
ですが、実務やチーム開発ではアクセス修飾子を明示したほうがベスト です。
まとめ
- クラスのデフォルト → internal
- メンバーのデフォルト → private
- 動くけれど、基本はアクセス修飾子を明示するのがおすすめ!
- 明示することで、コードの意図が分かりやすく、安全性も高まる