繁体   English   中英

C#中的全局变量

[英]Global variable in C#

我想在我的程序中使用一些全局变量。 我们有什么可以帮助直接定义全局变量,因为我们在C ++中有#define。

例如:假设我在C ++中有下面提到的全局变量:

#define CROSSOVER_RATE            0.7
#define MUTATION_RATE             0.001
#define POP_SIZE                  100        
#define CHROMO_LENGTH             300
#define GENE_LENGTH               4
#define MAX_ALLOWABLE_GENERATIONS   400

我希望在我的C#程序中将它们定义为全局变量。 请让我知道我该怎么办?

您可以在类中定义它们:

public static class Constants {
  public const double CrossoverRate = 0.7;
  ...
}

像这样使用它们: Constants.CrossoverRate

但是我只会这样做,如果他们真的不变,像PI 对于可以更改的参数,我更喜欢使用具有实例级值的类。 我认为你需要这种灵活性来调整你的遗传算法,或者一次使用多个参数集。 这是一种方法(不可变类):

public class GeneticAlgorithmParameters {

  public double CrossoverRate { get; private set; }
  ...

  public GenericAlgorithmParameters(double crossoverRate, ... others) {
    CrossoverRate = crossoverRate;
    ...
  }

}

现在,您将GeneticAlgorithmParameters的实例GeneticAlgorithmParameters给您的GeneticAlgorithm类构造函数。

public static class Constants
{
    public const string MyConstant = "constantValue";
}

你打电话给他们如下:

public void MyMethod
{
    var string = Constants.MyConstant;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM