Skip to content

JA CSharp Structs Records

Codex edited this page Oct 11, 2026 · 2 revisions

Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

構造、レコード、タプル、および比較

マニュアルC# · 例題UO

struct — 値のタイプ。 classはリファレンスタイプです。 record は、便利なデータ等価性セマンティクスを持つ型を指定します。 record class と record struct が可能です。 with は、元のオブジェクトを保持したまま、変更されたメンバーを含むレコードのコピーを作成します。

簡単な例 (Example.cs)

この例を Example.cs として別に保存し、このページの他の例とは独立して実行してください。

Example.cs:

// PROJECT-EXAMPLE
var original = new Item("ore", 1);
var copy = original with { Count = 3 };
System.Console.WriteLine($"{original.Count}:{copy.Count}");
record Item(string Name, int Count);

結果:

1:3
record Position(int X, int Y);
var first = new Position(10, 20);
var second = first with { X = 11 };
UO.Print($"First={first}, second={second}");
readonly record struct Point(int X, int Y);
var point = new Point(10, 20);
(int X, int Y) coordinates = (point.X, point.Y);
var (x, y) = coordinates;
UO.Print($"{x}, {y}");

タプルは、個別のクラス宣言を行わずに複数の値をグループ化します。要素名により可読性が向上しますが、独立した新しい型は作成されません。ネイティブ型の場合、参照等価性 Equals とオーバーロードされた演算子 == を区別してください。

公式ドキュメント: 構造、レコード、タプル、および比較 - Microsoft Learn。

Clone this wiki locally