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です。値を設定します。
関連の記事