哪个用于C#中的算法参数:static,const,readonly?

hel*_*ker 3 c# parameters static const

我有一些类,其方法实现科学的数值算法.

例如,一个类实现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;

    (...)
}
Run Code Online (Sandbox Code Playgroud)

这里的想法是这些参数将通过实验确定,理想情况下不应更改,甚至不能通过配置.

所以问题是:宣布它们的"正确"方式是什么?他们真的应该static吗?他们不应该const吗?在C#中,这种(相当普遍的)模式通常如何实现良好实践?

谢谢阅读!

Hab*_*bib 8

这里的想法是这些参数将通过实验确定,理想情况下不应更改,甚至不能通过配置

只需将它们声明为常量即可.const.由于常量是隐式静态的,因此您可以使用类名访问它们.

如果将它们定义为静态,那么您也可以修改它们.

public class Interpolator
{
    const int LAYERS = 6;
    const int MINIMUM_NEIGHBORS = 1;
    const double SEARCH_RADIUS = 20;
    const double START_RADIUS = 100;
}
Run Code Online (Sandbox Code Playgroud)