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とするのが一般的です。
コメント