在c#中将默认值设置为成员类

Nat*_*izz 3 c# class

我需要为成员类设置一个默认值,这个值可以变化,并在执行开始时设置; 到目前为止我有这个,minScore是我的默认值

public class Zones : GeneralIndicator
{
   public int IndicatorType { get; set; } 
   public string Code { get; set; }
   public string Score { get; set; } //TODO: calcular desde aca el score usando el indicatortype
   public double Latitude { get; set; }
   public double Longitude { get; set; }

   private int minScore = 0;

   public void setMinScore(int value)
   {
      minScore = value;
   }
}
Run Code Online (Sandbox Code Playgroud)

我在调用应用程序时将minScore值作为参数.为运行时生成的每个对象设置minScore的最佳方法是什么?

Jon*_*eet 7

两种选择:

  • 创建一个ZonesFactory类,它接受defaultMinScore构造函数(记住),并有一个CreateZones创建实例并设置最小分数的方法:

    public class ZonesFactory
    {
        private readonly int defaultMinScore;
    
        public ZonesFactory(int defaultMinScore)
        {
            this.defaultMinScore = defaultMinScore;
        }
    
        public Zones CreateZones()
        {
            return new Zones(defaultMinScore);
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)

    请注意,这里我假设您还创建了一个新的构造函数Zones,并将其minScore作为参数.我建议你摆脱这种setMinScore方法(除了其他任何东西之外违反.NET命名约定).

  • 使用静态变量保持默认值,并在Zones构造函数中设置它

就个人而言,我更喜欢第一种.

  • @ReacherGilt:这是假设它需要可访问.最好将它作为构造函数参数,然后存储在只读字段中,除非它实际上需要作为公共API的一部分. (4认同)