「C Sharp」の版間の差分

ナビゲーションに移動 検索に移動
1,348 バイト追加 、 1 か月前
→‎record型: 現状、record型の配列はサポートが無い状態である。
(→‎record型: 現状、record型の配列はサポートが無い状態である。)
Tom
</syntaxhighlight>
 
 
 
実行結果の2行目と3行目を見比べれば分かるように、2行目の結果でwith書き換えをした派生変数 person02 を作成しても、もとのrecord型変数 person01 はそのままです。
 
 
 
record型は、「とりあえず初期値なしで宣言しておいて、あとで1度だけ値を代入する」のような使い方は、知られていない。
 
このため、record型の変数を配列で扱うのは現状、困難である。たとえば上記コードの Person01 や Person02 を配列<code>PersonArray[0]</code>, <code>PersonArra[1]</code> のようにまとめたくなるだろうが、しかし現状では困難である。
 
なぜかというと、record型では初期値が必要な仕様のため、「配列として確保しておいて、あとから値を代入する」というのが現状、困難だからである。
 
[https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-9?WT.mc_id=DT-MVP-5002467#record-types 『C# 9.0 の新機能 - C# ガイド | Microsoft Docs』]を読みにいっても、record型の変数をどう配列化するかとか、そもそも配列化できるのか、配列化を想定しているかすら、まったく語られていない。
 
このように現状、record型の配列はサポートが無い状態である。
 
よって、どうしてもC#で配列化するような大量の記録をあつかう場合には、レコード型ではなく構造体やクラスによるインスタンスを配列化したものを使うのが良いだろう。
 
{{NDC|007.64}}
23,090

回編集

案内メニュー