C# のアクセス修飾子 (指定子) とプログラム例
C# のアクセス修飾子 (指定子) とは何ですか?
アクセス修飾子 または C# のアクセス指定子は、クラス プロパティまたはメソッドの可視性を定義するために使用されるキーワードです。 これは、他のプログラムにクラスのプロパティやメソッドを参照させたくない場合に使用されます。 アクセス修飾子は、他のプログラムがクラスのプロパティやメソッドを参照できないようにアクセスを制限します。
C# には 6 種類のアクセス修飾子があります。
- プライベート
- 公共
- 保護されました
- インナー
- 保護された内部
- プライベート保護
以下で説明するプログラム例を使用して、C# の主なアクセス修飾子について学習します。
C# のプライベート アクセス修飾子
Private アクセス修飾子がプロパティまたはメソッドにアタッチされている場合、それらのメンバーには外部プログラムからアクセスできないことを意味します。
プライベートアクセス修飾子の例
例を挙げて、private アクセス修飾子を使用すると何が起こるかを見てみましょう。
Tutorial.cs ファイル内の現在のコードを変更してみましょう。 SetTutorial メソッドで、public キーワードを private に変更しましょう。
次に、Program.cs ファイルに切り替えてみましょう。 SetTutorial メソッドの下に赤い波線があることに気づくでしょう。
Tutorial クラスで SetTutorial メソッドをプライベートとして宣言したので、Visual Studio はこれを検出しました。Visual Studio はこれを強調表示して、このメソッドが Program.cs ファイルからは機能しないことをユーザーに通知しました。
C# パブリック アクセス修飾子
Public アクセス修飾子がプロパティまたはメソッドにアタッチされている場合、それらのメンバーは任意の外部プログラムからアクセスできることを意味します。 これについては、以前の例ですでに確認しました。
パブリックアクセス修飾子の例
Tutorial クラスでメソッドを public として定義したため、Program.cs ファイルからアクセスできます。
C# の保護されたアクセス修飾子
Protected アクセス修飾子がプロパティまたはメソッドのいずれかにアタッチされている場合、それらのメンバーには次のユーザーのみがアクセスできることを意味します。 継承されたクラス 現在から class。 これについては、継承クラスで詳しく説明します。
C# 内部アクセス修飾子
内部アクセス修飾子がプロパティまたはメソッドにアタッチされている場合、それらのメンバーには内部プログラムのみがアクセスでき、外部プログラムはアクセスできません。
C# コンストラクター
C# コンストラクターは、対応するオブジェクトの作成時にクラス フィールドの値を初期化するために使用されます。 コンストラクターは、クラスと同じ名前を持つメソッドです。 コンストラクターがクラスで定義されている場合、オブジェクトの作成時に呼び出される最初のメソッドが提供されます。 Employee というクラスがあるとします。 コンストラクター メソッドの名前も Employee() になります。
コンストラクタメソッドについては以下の重要な点に注意する必要がある。
- コンストラクターの C# のデフォルトのアクセス修飾子をパブリックとして作成する必要があります。
- コンストラクター メソッドには戻り値の型があってはなりません。
C# コンストラクターの例
次に、コンストラクターのユーザーをコードに組み込む方法を見てみましょう。 コンストラクターを使用して、オブジェクトの作成時に TutorialID フィールドと TutorialName フィールドをデフォルト値に初期化します。
ステップ1) 最初のステップは、Tutorial クラスのコンストラクターを作成することです。 このステップでは、以下のコードを Tutorial.cs ファイルに追加します。
コードの説明:-
- まず、クラスと同じ名前の新しいメソッドを追加します。 これはクラスと同じ名前であるため、C# はこれをコンストラクター メソッドとして扱います。 したがって、呼び出し側メソッドがこのクラスのオブジェクトを作成するたびに、このメソッドがデフォルトで呼び出されるようになります。
- Tutorial コンストラクターでは、TutorialID の値を 0 に、TutorialName の値を「Default」に設定しています。 したがって、オブジェクトが作成されるたびに、これらのフィールドには常にこれらのデフォルト値が設定されます。
次に、Program.cs ファイルに切り替えて、SetTutorial メソッドを呼び出す行を削除しましょう。 これは、コンストラクターがどのように動作するかを確認したいだけであるためです。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Tutorial { public int TutorialID; public string TutorialName; public Tutorial() { TutorialID=0; TutorialName="Default"; } public void SetTutorial(int pID,string pName) { TutorialID=pID; TutorialName=pName; } public String GetTutorial() { return TutorialName; } static void Main(string[] args) { Tutorial pTutor=new Tutorial(); Console.WriteLine(pTutor.GetTutorial()); Console.ReadKey(); } } }
コードの説明:-
- 最初のステップは、Tutorial クラスのオブジェクトを作成することです。 これは「new」キーワードを使用して行われます。
- TutorialName を取得するには、Tutorial クラスの GetTutorial メソッドを使用します。これは、Console.WriteLine メソッドを介してコンソールに表示されます。
上記のコードを正しく入力してプログラムを実行すると、次の出力が表示されます。
出力:
出力から、コンストラクターが実際に呼び出され、TutorialName の値が「Default」に設定されていることがわかります。
注意: ここでは、値「default」がコンストラクターからフェッチされます。
製品概要
- C# のアクセス修飾子またはアクセス指定子は、クラス プロパティまたはメソッドの可視性を定義するために使用されます。
- Private アクセス修飾子がプロパティまたはメソッドにアタッチされている場合、それらのメンバーには外部プログラムからアクセスできないことを意味します。
- Public アクセス修飾子がプロパティまたはメソッドにアタッチされている場合、それらのメンバーは任意の外部プログラムからアクセスできることを意味します。
- Protected アクセス修飾子がプロパティまたはメソッドにアタッチされている場合、それらのメンバーには、現在のクラスから継承されたクラスのみがアクセスできることを意味します。
- 内部アクセス修飾子がプロパティまたはメソッドにアタッチされている場合、それらのメンバーには内部プログラムのみがアクセスでき、外部プログラムはアクセスできません。
- C# コンストラクターは、対応するオブジェクトの作成時にクラス フィールドの値を初期化するために使用されます。