【Unity×C#】省略形シリーズ 第七弾:省略の終着点?記録(record)と式メンバー、完全に “書かないC#” へ

Unity

C# if文省略形からはじまったこのシリーズ、今度こそ最終回となりました。

今回は、書く手間を極限まで減らせる構文record式メンバー(expression-bodied members) をご紹介します。
これまでの if 文やラムダ式とはまた違った、「書かないことが正義」な省略形たちです。

このあたりまで来るともはやKuroMikanも自ら勉強しながら執筆しております💦

record:クラス定義を1行にまとめたいときに

普通に書くとこう

public class Person
{
public string Name { get; }
public int Age { get; }

public Person(string name, int age)
{
Name = name;
Age = age;
}
}

このコードは「Personというクラスを定義し、名前と年齢をコンストラクタで受け取れる」という処理を行います。
プロパティ、コンストラクタ、初期化処理…きちんと書いています。
親の顔ほど見たクラス設計ですが、これを省略することができます。

✂️ 省略するとこう

public record Person(string Name, int Age);

わずか1行──。
このコードは、同じ「Person」クラスをたった1行で定義します。プロパティやコンストラクタ、ToString などが自動生成されます。

record にすると、プロパティ・コンストラクタ・Equals/GetHashCode/ToString など一式が自動生成されます。
不変(イミュータブル)な値オブジェクトに最適です。

✅ 使用例

var p = new Person("Alice", 30);
Console.WriteLine(p); // 出力: Person { Name = Alice, Age = 30 }

recordを使ったインスタンスを作って、その内容を文字列として出力します。
ToString() の出力すらもう賢い。

式メンバー:メソッドやプロパティも1行で

普通に書くとこう

public int Square(int x)
{
return x * x;
}

このコードは、整数を受け取って2乗を返すメソッドです。
これも親の顔ほど(略)この関数も省略できます。


✂️ 省略するとこう

public int Square(int x) => x * x;

同じ処理を式1つで書いたメソッドです。return と波カッコが不要になります。
前回のラムダ式編でも登場した => ですが、式が1つだけのときは { return ... }=> で書けます。

✅ プロパティも省略できる

public int AgeInMonths => Age * 12;

このコードは、Age プロパティを12倍した月齢を返す読み取り専用プロパティです。
get{} も不要。単純な「計算だけ」のプロパティにぴったり。

式コンストラクタ・式デストラクタ

public Person(string name) => Name = name;
~Person() => Console.WriteLine("Bye!");

このコードは、コンストラクタとデストラクタを1行で記述しています。処理がシンプルなときに便利です。
省略はメソッドだけにとどまりません。
「書く」より「言いたいことだけ伝える」という姿勢が大事です。

まとめ:コードは短く、意図は明確に

処理内容普通の書き方省略形(モダンな書き方)
不変オブジェクト定義プロパティ+コンストラクタrecord キーワードで1行
単一式のメソッド{ return ...; }=> 式メンバーで1行
計算プロパティget { return ...; }=> 式プロパティで簡潔に

このように、C# では「書かなくていい部分を減らし、書いた部分が何を意味するかがすぐに伝わる」ように進化してきました。
省略形とは、単なる手抜きではなく、意図を明快にするための工夫です。


これにて「if文省略形シリーズ」は完結です。

C#という言語は、「明示的に書ける自由」もあれば、「省略しても伝わる表現力」も持ち合わせています。
このシリーズでは、コードの「短さ」だけでなく、「読みやすさ」や「意図の明確さ」にフォーカスして、省略形の利点と使いどころを見てきました。

書く量を減らすことは、単なる時短ではありません。
読み手(コードレビュアー等)の負担を減らし、コードの意図を素早く伝え、保守や拡張をしやすくする――それこそが、C#が提供する省略構文の本当の価値です。

今後も複雑なロジックを整理し、シンプルに伝える力を磨きながら、よりスマートなコードを目指していけたらと思います。
小さな1行の省略が、チーム全体の理解と品質に繋がることもありますからね。

ここまでお付き合いいただき、本当にありがとうございました。
このシリーズがあなたのC#ライフを少しでも快適に、そしてちょっと楽しくできたなら幸いです。

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