C# プロパティ(getter/setter)のサンプル

C#のプロパティ(getterとsetter)のサンプルです。
(確認環境:Microsoft Visual Studio Community 2019)

目次

サンプル プロパティ
  自動実装ではないプロパティのサンプル

プロパティ

public string 名称 { get; set; }
public string 名称 { get;} = "値";
  • 変数の値を取得するGetメソッドと値を設定するSetメソッドがあります。
  • getのみの場合、読み取り専用になります。
  • C#3.0から自動実装プロパティという機能が実装されました。上記の記述のみでプロパティが実現できます。getterとsetterを記述する必要がなくなりました。
  • 以下は、Microsoftの自動実装するプロパティ (C# プログラミング ガイド)のリンクです。
    https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/auto-implemented-properties

プロパティのサンプルです。

using System;

class Class1
{
	public string name1 { get; set; }
	public string name2 { get;} = "緑";
}
class Test1
{
	static void Main()
	{
		var c1 = new Class1();
		var c2 = new Class1();
		var c3 = new Class1();

		c1.name1 = "赤";
		c2.name1 = "青";

		Console.WriteLine(c1.name1); // 赤
		Console.WriteLine(c2.name1); // 青
		Console.WriteLine(c3.name2); // 緑
	}
}

5行目は、プロパティです。
6行目は、読み取り専用のプロパティです。
16,17行目は、setterで値をセットしています。
19~21行目は、getterで値を取得し表示しています。

設定と取得ともにプロパティ名を指定しています。
JavaのようにgetXXXやsetXXXというメソッドは使用しません。

自動実装ではないプロパティのサンプル

自動実装ではないプロパティのサンプルです。

using System;

class Class1
{
	private string _name1;
	public string name1
	{
		get { return _name1; }
		set { _name1 = value; }
	}
}
class Test1
{
	static void Main()
	{
		var c1 = new Class1();
		var c2 = new Class1();

		c1.name1 = "赤";
		c2.name1 = "青";

		Console.WriteLine(c1.name1); // 赤
		Console.WriteLine(c2.name1); // 青
	}
}

5行目は、privateの変数です。
8行目は、getterです。値を取得します。
9行目は、setterです。値を設定します。

関連の記事

C# 構造体のサンプル(struct)
C# 列挙型(enum型)のサンプル

△上に戻る