C# 将默认值设置为c中的成员类#
我需要为一个成员类设置一个默认值,该值可以变化,并且在执行开始时设置;到目前为止,我已经知道了,minScore是我的默认值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
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
方法(它除了违反任何其他命名约定外,还违反了.NET命名约定)setMinScore
- 使用静态变量保留默认值,并在
构造函数中进行设置区域
就我个人而言,我更喜欢其中的第一个。因此您将拥有此对象的多个实例,并且它们都应该具有相同的
minScore
值?或者每一个都有一个不同的<代码> MIXSITS/<代码>?如果定义了<代码> MIXSCOR> <代码>,则需要添加一个构造函数。如果这个评论没有关系,你能详细说明一下你想要完成什么吗?你的问题有点模糊。但是最好的方法是在构造函数中设置minScore(如果我没有弄错的话)。@AllenG是的,它们都应该有相同的minScorevalue@gunr2171事实上,我很笨。乔恩关于setMinScore
的第二点很重要。您将java约定与C#混合在一起。我建议拥有一个名为MinScore
的属性,该属性具有公共getter和私有setter。@ReacherGilt:这是假设它需要可以访问。最好将其作为构造函数参数,然后存储在只读字段中,除非它实际上是公共API的一部分。