我继承了一个用C#编写的基于Windows窗体的小程序,它使用“常量”(见下文),我需要修改这个程序,以便'PROPERTY_NAME'可以是“工作”和“职业”。
private const string PROPERTY_NAME = "jobs";
我猜一个常数不是为了改变所以我需要改变它。上面的行在类文件的顶部设置一次,然后在该文件中使用PROPERTY_NAME。
在主窗体上,我想添加两个名为“jobs”的单选按钮1和一个名为“careers”的单选按钮,然后根据选中的类别更改类文件中的PROPERTY_NAME。我是否需要将单选按钮状态传递给类文件中的方法?我记得读过我不能简单地从类文件中读取单选按钮值。
非常感谢你的建议。
简
答案 0 :(得分:7)
我最好的(也是最简单的)猜测(我可以详细说明更干净的东西,但这只是为了速度),而不会看到代码的任何其他部分将删除const
并添加readonly
所以PROPERTY_NAME
只是一个普通的旧类成员变量,不能在构造函数之外进行更改。
在类的构造函数中,接受一个字符串参数,并让创建此类实例的代码在“jobs”或“careers”中传递(可能来自所选的单选按钮)并设置{{1变量。
修改强>
与Sasha说的一样,另一种方法是使用PROPERTY_NAME
,但这取决于enum
到底是否适合您的应用程序。
答案 1 :(得分:4)
如果您所代表的数量在整个Universe历史记录中永远,则不要使其成为常量。常数是指十几个鸡蛋的数量或铅的原子量。诸如版本号或当前黄金价格之类的东西会随着时间而变化,因此不是常量。 只将常量值设置为常量字段。编译器会将常量字段视为常量,如果它们发生变化,可能会引入语义错误。
答案 2 :(得分:3)
制作一个枚举(我的首选方式)并使其成为只读属性。在构造函数中设置此属性。它在创建后不会改变,应该做你需要的。
-sa
答案 3 :(得分:0)
你不能让两个值保持不变。看起来您需要创建一个存储当前属性名称的字段并在表单中使用它。您将能够通过单选按钮启动此类字段。