2022年01月13日
川俣晶の縁側ソフトウェアnew_C#入門・全キーワード明快解説!total 344 count

private/protected/internal/publicキーワード: アクセス修飾子は名前の洪水からの救世主

Written By: 川俣 晶連絡先

この章のテーマ §

 アクセサのprivate/protected/internal/publicキーワードのアクセス修飾子について学びます。

前提知識 §

Console.WriteLineメソッド, クラスの基礎, メソッドの基礎, アセンブリ, 継承

解説 §

 クラスなどの型やそのメンバーにはアクセス修飾子を付けることができます。

 これによって、誰からアクセスできるかの範囲を制御することができます。これにより、内部処理で使っているだけのメンバーを外部に見せないという配慮が可能になり、候補リストに並ぶ名前を減らすことができます。また、内部処理専用のメンバーは内部の都合でいつでも書き換え可能になります。意図しない利用も防げて信頼性も上がります。

 アクセス修飾子には以下にバリエーションがあります。

  • public:アクセスは無制限です。
  • protected:現在の型またはそこから派生した型にアクセスが限定されます。
  • internal:アクセスは現在のアセンブリに限定されます。
  • protected internal:現在のアセンブリ、または包含クラスから派生した型にアクセスが限定されます。
  • private:現在の型にアクセスが限定されます。
  • private protected:現在の型、または現在の型から派生した型にアクセスが制限されます。

 ビギナーはまずpublicとprivateだけしっかり覚えて使い分けで下さい。継承を学んだらprotectedを意識して下さい。モジュール分けを学んだらinternalも意識して下さい。

罠の数々 §

  • アクセス修飾子は省略することもできる。クラスなどはinternal相当、メンバーはprivate相当になるが、他の機能にもデフォルトの定義が存在する。相当慣れるまでは、できるだけはっきりと書いて意図を明示した方が良い
  • 実は慣れている人ほどきめ細かくアクセス制限を設定する。不必要にアクセス可能にするとトラブルの元だと分かっているからである
  • リフレクションという特別な機能を使用するとアクセス制限を超えてアクセスすることもできてしまうが、使うのは面倒なので特にそれが必要とされるまでは使用されないと思って良い。型の外部から利用される可能性のあるメンバーはpublicやinternalを指定しておこう

参考リンク §

アクセス修飾子 (C# リファレンス)

サンプルソース: accessModifiers §

var x = new Sample();

x.SubPublic();   // 呼べる

//x.SubPrivate();  // 呼べない

public class Sample

{

    public void SubPublic()

    {

        Console.WriteLine("pubic method");

        SubPrivate();   // 呼べる

    }

    private void SubPrivate()

    {

        Console.WriteLine("private method");

    }

}

実行結果 §

pubic method

private method

リポジトリ §

https://github.com/autumn009/CSharpPrimer2

練習問題 §

 なぜ外部からの利用を全てシャットアウトするprivateというアクセス修飾子があるのだろうか。

 間違った解釈を選べ。

  1. 複数の公開されたメソッドの共通処理を書きたいから
  2. 型の内部でのみ参照される共通の情報の保管場所を作りたいから
  3. 型の内部でのみ参照される型を作りたいから
  4. 厳格な禁止ルールを付けて支配する快感に酔いたいから

[[解答]]

Facebook

キーワード【 川俣晶の縁側ソフトウェアnew_C#入門・全キーワード明快解説!
【new_C#入門・全キーワード明快解説!】の次のコンテンツ
2022年
01月
14日
継承とsealedキーワード: 既存の型をパワーアップせよ
3days 2 count
total 456 count
【new_C#入門・全キーワード明快解説!】の前のコンテンツ
2022年
01月
12日
class: 参照型を自作できる魔法のキーワード!
3days 2 count
total 384 count

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

http://mag.autumn.org/tb.aspx/20220113111907
サイトの表紙【new_C#入門・全キーワード明快解説!】の表紙【new_C#入門・全キーワード明快解説!】のコンテンツ全リスト 【new_C#入門・全キーワード明快解説!】の入手全リスト 【new_C#入門・全キーワード明快解説!】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.36 (Alpha-Test) Copyright (c) 2004-2021 Pie Dey.Co.,Ltd.