record是一种语法糖。
标准的record用法有“record class”和"record struct"两种,分别表示记录类和记录构造。是“引用”和“值”的差别。
单独使用record表示"record class"。
语法:脱胎于构造函数。
record Person(string Xm,int Nl);
或者
record Person(string Xm,int Nl) { public void showMe() { Console.WriteLine($"I'm {Xm}, I'm {Nl} years old."); } }
含义:
1、快速写出类Person。
2、参数(微软称为位置参数)Xm和Nl会自动生成为属性。
3、自动生成解构函数。
上面的Person,基本用法如下:
static void Main(string[] args) { Person a=new("zs",20); a.showMe(); var (aa, bb) = a; Console.WriteLine($"{aa}\n{bb}"); }
结果略。
注意:
- 记录除了语法糖的性质,还是为性能优化和安全设计的。
- 其中一个表现为属性只读,构造后不可修改。
- 应该只用它来存放数据。
- 尽量不要带方法,不要继承。