C# 12 Primary Constructor 的隐藏用法
Intro
之前写过一篇 primary constructor 的文章 C# 12 中的 Primary Constructor,最近发现得益于 primary constructor 在声明空类型时也可以更加简单,有些情况下要声明一个空的类型时会比较有帮助,尤其是测试代码中,所以再写一个补充说明
Sample
针对于 record 我们可以使用一行代码来声明一个类型或结构体
record class Job(string title);
record struct Point(int X, int Y);
对于一个空的类型,也可以这样声明:
record EmptyJob;
得益于 C# 12 的 primary construtor 特性我们针对空的 class 和 struct 也可以这样使用,使用方式如下:
Console.WriteLine(nameof(AbstractAnimal));
Console.WriteLine(nameof(AbstractSharp));
file abstract class AbstractAnimal;
file struct AbstractSharp;
而这不仅仅限于没有参数的形式,例如下面这个示例:
file class Animal(string name) : AbstractAnimal
{
public string Name => name;
}
file sealed class Cat(string name) : Animal(name);
这样也是可以的,空的类型体都可以用 ;
来进行简化,再看一下带参数的 struct(仅供参考
file struct Point3D(int x, int y, int z);
是不是更加简单了呢
来看看反编译的结果
References
https://github.com/WeihanLi/SamplesInPractice/blob/main/CSharp12Sample/PrimaryConstructorSample.cs