0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【C#】アクセス修飾子を省略したらどうなる?

Posted at

クラスのデフォルト

トップレベルのクラス(通常のクラス)を定義したとき、アクセス修飾子を省略すると internal になります。

class Person  // ← internal がデフォルト
{
}

「同じプロジェクト内からは使えるけど、外部のプロジェクトからは見えない」という扱いです。

クラスのメンバー(フィールドやメソッド)のデフォルト

クラスの中の変数やメソッドを定義したとき、アクセス修飾子を省略すると private になります。

class Person
{
    string name;    // ← private がデフォルト
    void SayHello() // ← private がデフォルト
    {
        Console.WriteLine("こんにちは!");
    }
}

「クラスの外からはアクセスできない」状態になります。

基本的にアクセス修飾子は書いたほうがいい

もちろん、デフォルトを知っていれば省略しても動きます。
ですが、実務やチーム開発ではアクセス修飾子を明示したほうがベスト です。

まとめ

  • クラスのデフォルト → internal
  • メンバーのデフォルト → private
  • 動くけれど、基本はアクセス修飾子を明示するのがおすすめ!
  • 明示することで、コードの意図が分かりやすく、安全性も高まる
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?