using record(まとめと復習)

書いた

github.com

自分の中での整理

個人的にrecordで一番良いと感じたのは、Primary ctorを定義した場合に、get; int; アクセサーと、値積み込み処理の生成を自動でやってくれる点。

今まで、C#

Constructorが動いたらobjectが利用可能になるように書きましょう

ってポリシーでやると、VS2019を使っていたとしても

  • 自動実装プロパティを定義する。
  • 自動実装プロパティをドラッグしてctrl + .を押して、ctorを生成する。

と、地味に面倒な作業が必要だった。

C#8まではinit set がなかったこともあって、Initializer経由で値セットするだけなのに、ついsetを書きがちな現象をよく見かけた(そして面倒な気持ちも理解できる。)

C#9でのrecordを使う場合、Primary ctorの定義を使っていけば、無用なset アクセサーは避けられる(そもそも自分で書かなくていい)し、コード書いてる側もわざわざctor書かなくても自動生成されるしで、丁度良いんじゃないかなあと今のところ思っている。

まだ、理解しきれているわけじゃないので、理解が進んだらまた書き直しor追記するかもしれない。