我有一些类,其方法实现了科学的数值算法。
例如,一个类实现 Radial-Basis-Function 并需要一些参数。目前,他们是这样的:
public class Interpolator {
// Free parameters
static int LAYERS = 6;
static int MINIMUM_NEIGHBORS = 1;
static double SEARCH_RADIUS = 20;
static double START_RADIUS = 100;
(...)
}
这里的想法是这些参数将通过实验确定,理想情况下不应更改,即使通过配置也不应更改。
所以问题是:哪种是声明它们的“正确”方式?它们真的应该是 static
吗?它们不应该是 const
吗?这种(相当常见的)模式通常如何在 C# 中根据良好实践实现?
感谢阅读!
最佳答案
The idea here is that these parameters will be determined experimentally, and ideally should not be changed, not even via configuration
只需将它们声明为常量即可。 常量
。由于常量是隐式静态的,您可以使用您的类名访问它们。
如果您将它们定义为静态的,那么您也可以修改它们。
public class Interpolator
{
const int LAYERS = 6;
const int MINIMUM_NEIGHBORS = 1;
const double SEARCH_RADIUS = 20;
const double START_RADIUS = 100;
}
关于c# - 哪个用于 C# : static, const 中的算法参数,只读?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19161526/