C# record类型如何定义可通过类型名访问的const或static属性
问题解答
可以实现,C#不需要像F#那样额外定义同名模块,C#的record类型本质是带默认合成方法的类/结构体,支持和普通类一致的静态成员定义规则,你直接在record内部定义常量即可达到需求:
record Test(int Magic) { // 访问级别可根据实际需求调整,常量值可自定义 public const int MyMagicConst = 2048; }
定义完成后就可以直接通过Test.MyMagicConst的形式访问该常量,和你期望的调用方式完全一致。
如果你需要定义不可变的复杂类型固定值,也可以替换为static readonly成员:
record Test(int Magic) { public static readonly Test DefaultTest = new Test(100); }
内容的提问来源于stack exchange,提问作者dr11
相关产品推荐
相关产品推荐

