スポンサーリンク

【C#】{get;set;}ってなに?最新のプロパティの書き方【自動実装プロパティ】

プログラミング

だいきです!

先日、プログラミングをしていてゲームが好きということはUnityは使わないといかんなーとおもってUnityで開発をしてみていました。

やり方から勉強しようと思い、AssetStoreからゲームをダウンロードしてソースコードを見ていると、
ほかの言語では見たことのない書き方をみつけました!その内容をまとめていこうと思います。

{get;set;}ってなに?最新のプロパティの書き方

Javaやオブジェクト指向の言語を扱っている人はgetter・setterについては馴染み深いでしょう。

私自身仕事でJavaを使うことが多々あったためクラスを作成する際によく用いていましたが、

そのクラスで使用するGetter・Setterと同じ用途で用いるためのもののようです。

最新の書き方では最早、中身の記述を必要としないということでした。

この記事では以下のサイトを参考に記載してきます。

プロパティ - C# プログラミング ガイド - C#
C# のプロパティは、プライベート フィールドの値の読み取り、書き込み、または計算を行うアクセサー メソッドを使用した、パブリック データのメンバーとしてのメンバーです。

標準的な書き方

従来の書き方では、以下のようにgetterやsetterでも関数内の処理について記載をしていかなければなりません。

using System;

class TimePeriod
{
   private double _seconds;

   public double Hours
   {
       get { return _seconds / 3600; }
       set {
          if (value < 0 || value > 24)
             throw new ArgumentOutOfRangeException(
                   $"{nameof(value)} must be between 0 and 24.");

          _seconds = value * 3600;
       }
   }
}

今回のソースのようにやることが他にもあるのであれば従来の書き方をしていくことは必要だと思うのですが、如何せんただreturnするだけだと書くのがただ億劫だとしか言えませんでした。

ですが、最近の書き方だと省略してもいいようです。

最新の省略型の書き方

次に紹介するのが今回の本題である省略形の書き方になります。

using System;

public class SaleItem
{
   public string Name
   { get; set; }

   public decimal Price
   { get; set; }
}

これでGetter・Setterの記述が終了できるようです。

なんて簡単なんだ…

まとめ

もっと調べてみるとC# 3.0 以降からすでに使用できるもののようですね。

VBなんかでも使用されている記述方法だそうです。

学び始めの私としてはわかりやすくて楽でいいですね。

この先もUnityの勉強をしつつどんどん記事を書いていきますので、よかったら他の記事も見ていってください。

コメント

タイトルとURLをコピーしました