c# - 哪个用于 C# : static, const 中的算法参数,只读?

标签 c# parameters static constants

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

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

相关文章:

c# - EPPlus 差一修正

c# - 将通用实例转换为基类

c++ - 静态 const 成员的 const_cast

Java 静态/实例方法优化

css - 从静态目录加载 CSS 的 Django 404 错误

c# - asp.net 核心发布问题

c# - 在 ExtDateOnly 中禁用日期

c# - 为什么 .Net 框架指南建议您不要使用 ref/out 参数?

ruby - 使用参数与 ruby​​ require

react-native - React Native 参数未更新