【C#】アクセス修飾子(internal、private、publi、protected)の違い

C#におけるアクセス修飾子(internal、private、publi、protected)の種類や違い、使い方について紹介します。

## 【アクセス修飾子】internal、private、publi、protected

C#におけるアクセス修飾子(internal、private、publi、protected)の種類と違いは以下のとおりです。

アクセス修飾子 意味 内容
internal 内部 自分自身のアセンブリ内部のクラスからのみ見える
private 非公開 同一クラス内のみアクセス可能
public 公開 どこからでもアクセス可能
protected 保護 派生クラスからアクセス可能
protected internal 内部保護 派生クラス or 自分のアセンブリ内部のクラスからアクセス可能

## 【C#】Internalの利用例

Internalは、同一のアセンブリ(exeファイル、DLLファイル、同一プロジェクト)からであれば参照可能となります。
アクセス修飾子なしでメソッドを宣言すると、デフォルトのinternalが自動的に設定されます。

internalが設定されたクラスは、他のアセンブリから参照設定しても参照できません。
そのため、プログラムの修正が発生した場合、必ず同時にコンパイルされるため、dllが提供している範囲まで修正する必要がなく(publicだと必要)、自分自身のプロジェクトのみを意識すればいいことになります。
まずinternalとしてから、解決できない場合にpublicを使用するのがベターです。

## 【C#】publicの利用例

publicに設定されたクラスは、他のクラス、プロジェクト問わずどこからでも参照可能となります。
そのため、自由度が高い反面、コードを修正する場合に、その影響を受ける範囲も膨大になります。
があるのかをチェックしてから、プログラムの修正をする必要があります。
そのため、internalではどうしても不都合な場合のみ使用するのが一般的です。

## 【C#】protectedの利用例

protectedを設定したクラスは、自身のクラス、及び自分の派生クラス(継承している子クラス)からのみ参照できます。
親クラスのみで使用する場合はprivateとし、子クラスにも使わせる必要がある場合はprotectedとするのが一般的です。

【C#入門】基礎文法とサンプル集
C#言語の基本文法・使い方をサンプルプログラムのソースコード付きで解説します。
C#
スポンサーリンク
西住工房

コメント