TECH I.S.

C# プロパティ (取得および設定)


プロパティとカプセル化

プロパティの説明を始める前に、"カプセル化"について基本を理解しておく必要があります。

カプセル化の意味は、「機密」データがユーザーから隠されていることを確認することです。これを達成するには、次のことを行う必要があります。

  • フィールド/変数をprivateとして宣言します。
  • privateフィールドの値にアクセスして更新するための、プロパティを通じてpublicgetsetメソッドを提供します。

プロパティ

前の章で学んだことは、private変数は同じクラス内でのみアクセスできます(外部クラスはアクセスできません)。
ただし、それらにアクセスする必要がある場合もあります。
これはプロパティで行うことができます。

プロパティは変数とメソッドを組み合わせたようなもので、次のgetメソッドとsetメソッドの2つのメソッドがあります。

{.language-csharp .techis-white}
class Person
{
private string name; // field
public string Name // property
{
get { return name; } // get method
set { name = value; } // set method
}
}

例の説明

Nameプロパティはnameフィールドに関連付けられています。 プロパティとプライベート フィールドの両方に同じ名前を使用しますが、最初の文字は大文字にする事を推奨します。 getメソッドはname変数の値を返します。 setメソッドはvaluename変数を設定します。 valueキーワードは、プロパティに割り当てる値を表します。

よくわからない場合は、以下の例を見てください。

これでNameプロパティを使用し、Personクラスのprivateフィールドにアクセスして更新できるようになりました。

{.language-csharp .techis-white}
class Person
{
private string name; // field
public string Name // property
{
get { return name; }
set { name = value; }
}
}
class Program
{
static void Main(string[] args)
{
Person myObj = new Person();
myObj.Name = "Liam";
Console.WriteLine(myObj.Name);
}
}

出力は次のようになります。

Liam


自動プロパティ (省略形)

C#はまた、プロパティのフィールドを定義する必要がなく、記述するだけでよい省略形/自動プロパティを使用する方法を提供します。プロパティ内部にget;set;を記述するだけです。

次の例は、上記の例と同じ結果を生成します。唯一の違いは、コードが少ないことです。

自動プロパティの使用

{.language-csharp .techis-white}
class Person
{
public string Name // property
{ get; set; }
}
class Program
{
static void Main(string[] args)
{
Person myObj = new Person();
myObj.Name = "Liam";
Console.WriteLine(myObj.Name);
}
}

出力は次のようになります。

Liam


カプセル化する理由

  • クラスメンバーのより良い制御(自分 (または他の人)がコードを台無しにする可能性を減らします)
  • フィールドが作れる読み取り専用(getメソッド使用する場合)、または書き込み専用(set使用する場合)
  • 柔軟性: プログラマーは、他の部分に影響を与えることなく、コードの一部を変更できます
  • データのセキュリティの向上


プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細