C# 2.0 以降の新機能を一つづつ確認していきます。
以前に一度行ったのですが、公式ドキュメント再編でリンク切れしているところを見つけてしまったので。今ならもっと簡潔なサンプルが欠けるところもあるだろうし、せっかくなので今もう一度確認して行きます。
レコード
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/records
GetHashCode()
、ToString()
、==
なんかをいい感じに勝手に実装してくれる素敵な型。値を表現するクラスをいい感じに作ってくれます。プロパティもいい感じに作ってくれるのも魅力。
// 引数 string Value を持つコンストラクタが作られる var saitama = new Saitama("せんべい"); // 引数と同名のプロパティが自動で作られて初期化も行われる Console.WriteLine(saitama.Value); // せんべい // 良い感じの ToString も自動で実装 Console.WriteLine(saitama); // Saitama { Value = せんべい } // class の代わりに record と書く // 引数を書くとコンストラクタとプロパティも作られる public record Saitama(string Value) { }