C#のレコードと値による比較
このレッスンでは、レコードで不変のデータを短く表し、with式で一部を変えたコピーを作ります。
はじめに
レコード(record)は、主にデータを入れておくためのオブジェクト用に設計された型です。1行宣言するだけで、コンストラクター、読み取り専用のプロパティ、見やすい表示がそろいます。特に、中の値が同じなら2つのレコードは等しいとみなされます。
record User(string Name, string Role)の1行で、NameとRoleの2つのプロパティを持つ型ができます。式original with { Role = "Lead" }はRoleだけを変えたコピーを作り、originalはDeveloperのままです。表示すると、レコードは中身をUser { Name = Ada, Role = Lead }の形で自動で示します。
実行できる C# の例
C#
Program.cs
using System;
record User(string Name, string Role);
class Program
{
static void Main()
{
var original = new User("Ada", "Developer");
var promoted = original with { Role = "Lead" };
Console.WriteLine(promoted);
}
}
User { Name = Ada, Role = Lead }デバッガーで練習する
大事な代入や条件にブレークポイントを置いて Debug を押し、次の行に進む前にローカル変数の値を確かめましょう。
チャレンジで練習する
このレッスンの内容を使って実際の問題を解きましょう。各チャレンジはブラウザで動き、すぐにテストされ、AI のレビューも受けられます。
すべてのチャレンジ