c# - 您将如何管理每个 c# 类的常量?

标签 c# asp.net resources constants

在所有应用程序中,总会使用一些常量值。

我不喜欢在我的应用程序中的每个代码中硬编码这些值,因为它显着降低了可维护性。

我有两个选择:

  • 在目标类中创建一个内部常量类并添加公共(public)常量值,例如

    内部静态类常量
    {
    公共(public)常量字符串 IdAttribute = "id";
    }

  • 或者
  • 创建一个资源文件 (.resx) 并将我的常量值和公式存储在那里。

  • 我在这里的应用程序中使用了第二种方法。我在使用资源文件时遇到的一个问题是我无法对它们使用 .NET 4.0 可选参数功能。

    例如以下不起作用:
    public void DoSomething(string id = Resources.Constants.Id)
    {
    // ..
    }
    

    错误是在运行时未确定 Id 的值。

    基本上,您会使用并推荐哪种方式来管理每个类的常量?为什么?

    我目前的方法是,如果我有只应该在一个类中使用的常量,我会在该类中创建一个静态常量类。如果我的常量要在多个类或项目中使用,我会将它们放在一个资源文件中,例如PageUrls.resx。

    谢谢,

    最佳答案

    就我个人而言,我宁愿在它们逻辑所属的类中定义常量,类似于(比如说)DateTime.MinValue .

    然后,一般来说,公开这些常量有点“代码味道”,暗示一些可能应该以更好的方式表达的耦合。当您的代码允许时,将它们设为私有(private)(或内部)显然没有害处。

    但是,有时存在全局常量。这些通常是实际配置,应该这样对待。

    关于c# - 您将如何管理每个 c# 类的常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7672137/

    相关文章:

    c# - 如何在 C# 中解析 JSON 对象

    c# - 如何以编程方式创建自定义评论标记

    c# - 是否可以*仅**跨子域共享表单例份验证?

    javascript - 最小化来自 AjaxControlToolkit 控件的 javascript HTTP 调用?

    java - jar文件文件夹中的资源列表?

    c# - 未处理 Windows 服务异常

    c# - 测试覆盖 IsValid 的 ValidationAttribute

    c# - Database.BeginTransaction() Entity Framework 回滚抛出异常

    asp.net-mvc-4 - 无法从 mvc 4 Controller 访问资源文件中的 key

    对象字面量与函数相比 Javascript 性能提升