我有一个记录类型
record Test(int Magic);
我想定义一些不需要配置的常量值例如,我可以像这样访问
Test.MyMagicConst
在f#中,我可以使用模块来定义一个与记录类型同名的常量。
有可能在c#和记录中实现类似的东西吗?
是。您可以在记录的定义中添加其他属性:
public record Test(int Magic)
{
public const int MyMagicConst = 10;
}
几个选项,一个常量字段,或者一个静态只读字段,或者一个静态属性
-
a const field对于简单类型
public record Test(int Magic) { public const int MyMagicConst = 100; }
-
静态只读字段对于更复杂的类型
public record Test(int Magic) { public static readonly int MyMagicConst = 100; }
-
静态计算属性当你需要先做一些计算
public record Test(int Magic) { public static int MyMagicConst {get => IsHardCore ? 10 :100; } }
-
static readonly property当你需要一个属性而不是一个字段
时public record Test(int Magic) { public static int MyMagicConst { get; } = 100; }