3

我需要为成员类设置一个默认值,这个值可以变化,它是在执行开始时设置的;到目前为止,我有这个,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;
   }
}

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

4

1 回答 1

7

两种选择:

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

    public class ZonesFactory
    {
        private readonly int defaultMinScore;
    
        public ZonesFactory(int defaultMinScore)
        {
            this.defaultMinScore = defaultMinScore;
        }
    
        public Zones CreateZones()
        {
            return new Zones(defaultMinScore);
        }
    }
    

    请注意,这里我假设您还创建了一个ZonesminScore为参数的新构造函数。我建议您摆脱该setMinScore方法(除了其他任何内容外,它都违反了 .NET 命名约定)。

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

我个人更喜欢其中的第一个。

于 2013-11-08T21:16:58.860 回答