C# 改变常量

标签 c#

我继承了一个用 C# 编写的基于 Windows 窗体的小程序,它使用了一个“常量”(见下文),我需要修改这个程序,以便“PROPERTY_NAME”可以是“工作”和“职业”。

    private const string PROPERTY_NAME = "jobs";

我猜一个常量不是为了改变而设计的,所以我是否需要改变它。上面的行在类文件的顶部设置一次,然后在整个文件中使用 PROPERTY_NAME。

在主窗体上,我想添加两个单选按钮 1 称为“工作”,一个称为“职业”,然后根据所选内容更改类文件中的 PROPERTY_NAME。我需要将单选按钮状态传递给类文件中的方法吗?我记得读过我不能简单地从类文件中读取单选按钮值。

非常感谢您的建议。

最佳答案

在没有看到代码的任何其他部分的情况下,我最好(也是最简单)的猜测(我可以详细说明一些更清晰的事情,但这只是为了速度)是删除 const 并添加 readonly 所以 PROPERTY_NAME 只是一个普通的旧类成员变量,不能在构造函数之外更改。

在类的构造函数中,接受一个字符串参数,并让创建此类实例的代码传入“jobs”或“careers”(可能来自所选的单选按钮)并设置 PROPERTY_NAME 变量。

编辑:

如 Sasha 所说,另一种方法是使用 enum,但这取决于 PROPERTY_NAME 究竟做了什么,这是否适合您的应用程序。

关于C# 改变常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2453986/

相关文章:

c# - 如何在 innertext 中嵌入一个新行

c# - 如何将静态属性设置为仅针对特定元素的值?

c# - 捕获 WCF 超时异常

c# - Web Api 2.2 OData V4 函数路由

c# - 将类/实例函数作为函数中的参数传递

c# - 当我在我的 Dll 中使用过剩函数时出现 DllNotFound 异常

c# - 无法在 Windows 10 中使用 DataTransferManager 共享图像

c# - 如何检查列表包含 Linq to sql 中的多个值

c# - Razor View IsAuthenticated 未按预期工作

c# - 为什么不能为泛型类型推断类型参数?