我想在我的程序中使用一些全局变量。我们是否有任何可以帮助直接定义全局变量的方法,就像我们在 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 .对于可以更改的参数,我更喜欢使用具有实例级值的类。我认为您需要这种灵 active 来调整您的遗传算法,或者一次使用多个参数集。这是一种方法(不可变类):
public class GeneticAlgorithmParameters {
public double CrossoverRate { get; private set; }
...
public GenericAlgorithmParameters(double crossoverRate, ... others) {
CrossoverRate = crossoverRate;
...
}
}
现在您将 GeneticAlgorithmParameters
的实例传递给您的 GeneticAlgorithm
类构造函数。
关于c# - C# 中的全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10238037/