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

时间:2013-11-08 21:14:31

标签: 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;
   }
}

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

1 个答案:

答案 0 :(得分:7)

两个选项:

  • 创建一个ZonesFactory类,它在构造函数中需要defaultMinScore(要记住),并且有CreateZones方法创建实例并设置最小分数:< / p>

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

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

  • 使用静态变量保留默认值,并将其设置在Zones构造函数

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