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

C# 将默认值设置为c中的成员类#,c#,class,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 s

我需要为一个成员类设置一个默认值,该值可以变化,并且在执行开始时设置;到目前为止,我已经知道了,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的最佳方法是什么?

两个选项:

  • 创建一个
    ZonesFactory
    类,该类在构造函数中采用
    defaultMinScore
    (记住),并具有一个
    CreateZones
    方法,该方法创建一个实例并设置最小分数:

    public class ZonesFactory
    {
        private readonly int defaultMinScore;
    
        public ZonesFactory(int defaultMinScore)
        {
            this.defaultMinScore = defaultMinScore;
        }
    
        public Zones CreateZones()
        {
            return new Zones(defaultMinScore);
        }
    }
    
    注意,这里我假设您还为
    区域
    创建了一个新的构造函数,它将
    minScore
    作为参数。我建议您放弃
    setMinScore
    方法(它除了违反任何其他命名约定外,还违反了.NET命名约定)

  • 使用静态变量保留默认值,并在
    区域
    构造函数中进行设置


就我个人而言,我更喜欢其中的第一个。

因此您将拥有此对象的多个实例,并且它们都应该具有相同的
minScore
值?或者每一个都有一个不同的<代码> MIXSITS/<代码>?如果定义了<代码> MIXSCOR> <代码>,则需要添加一个构造函数。如果这个评论没有关系,你能详细说明一下你想要完成什么吗?你的问题有点模糊。但是最好的方法是在构造函数中设置minScore(如果我没有弄错的话)。@AllenG是的,它们都应该有相同的minScorevalue@gunr2171事实上,我很笨。乔恩关于
setMinScore
的第二点很重要。您将java约定与C#混合在一起。我建议拥有一个名为
MinScore
的属性,该属性具有公共getter和私有setter。@ReacherGilt:这是假设它需要可以访问。最好将其作为构造函数参数,然后存储在只读字段中,除非它实际上是公共API的一部分。