c#中记录类型的Const或静态属性



我有一个记录类型

record Test(int Magic);

我想定义一些不需要配置的常量值例如,我可以像这样访问

Test.MyMagicConst

在f#中,我可以使用模块来定义一个与记录类型同名的常量。

有可能在c#和记录中实现类似的东西吗?

是。您可以在记录的定义中添加其他属性:

public record Test(int Magic)
{
public const int MyMagicConst = 10;
}

几个选项,一个常量字段,或者一个静态只读字段,或者一个静态属性

  1. a const field对于简单类型

    public record Test(int Magic)
    {
    public const int MyMagicConst = 100;
    }
    
  2. 静态只读字段对于更复杂的类型

    public record Test(int Magic)
    {
    public static readonly int MyMagicConst = 100;
    }
    
  3. 静态计算属性当你需要先做一些计算

    public record Test(int Magic)
    {
    public static int MyMagicConst {get => IsHardCore ? 10 :100; }
    }
    
  4. static readonly property当你需要一个属性而不是一个字段

    public record Test(int Magic)
    {
    public static int MyMagicConst { get; } = 100;
    }
    

最新更新