【C#超入門】6種類のアクセス修飾子を解説

C# アクセス修飾子

今回はC#のアクセス修飾子を学んでいきます。

よく使われるアクセス修飾子はpublicやprivateと言われるものですが、他にもあるのでそれぞれの特徴について解説していきます。

目次

アクセス修飾子は6種類ある

アクセス修飾子は6種類あります。

それぞれの機能はこちら。

publicどこからでもアクセス可能
private同じクラス内のみアクセス可能
protected同じクラスと派生クラス内でアクセス可能
internal同じクラスとアセンブリ内でアクセス可能
protected internal同じアセンブリと別アセンブリの派生クラスでアクセス可能
private protected同じクラスと同じアセンブリの派生したクラスのみアクセス可能
C#のアクセス修飾子

public

publicはどこからでも参照できます。

他のクラスからもできますし、参照設定しているプロジェクトからも可能。

ただし、どこからでも参照できるがゆえ、プログラムの保守でコードを変更するときに影響範囲が大きくなるおそれがあります。

同じソリューションを使っていればコンパイル時のエラー検出引っかかりますが、DLLとして提供している場合は結合テストなどのプログラム実行時でないとエラーとならず、バグが見落とされるリスクがあります。

もう少しスコープを狭くできるようであれば後述のinternalを検討しましょう。

internal

internalは同一アセンブリ内であれば参照可能。

アセンブリとはexeファイルやdllファイルのことを指します。

VisualStudioにある他のプロジェクトから参照されていてもinternalであれば参照されることはありません。

publicのようにDLLで提供していることまで考慮してプログラムを修正する必要はなく、あくまで自分のプロジェクト内での影響範囲を確認すればOKです。

protected

protectedは同じクラスと派生クラス内で参照できます。

派生クラスとは親子のようなクラスで、基本となるクラスがあってそれを継承したクラスのことをいいます。

親クラスのみで使う場合はprivateと使い、子にも使わせるときにprotectedを使うのが通常の使い方です。

また、protectedはプロジェクトが別であっても継承関係にあれば参照することができるので注意が必要です。

private

privateは同一クラス内からのみ参照可能。

他のクラスからの影響を受けたくない場合はprivateを使いましょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

都内の精密機器を作っている会社に勤務している14年目のエンジニアです。趣味は美味しいものを食べることとゴルフ。プログラムについて今まで学んだことをわかりやすく発信するサイトを目指しています。

コメント

コメントする

目次
閉じる