如何将const设置为等于字段值?

时间:2014-06-20 20:41:11

标签: c# forms

我的变量必须是常量(端口号) 我希望它等于字段值(port_text) 我试着这样做:

    const int portNo = int.Parse(port_text.text);

但它说分配给portNo的表达式必须是常量的... 有什么想法吗?

3 个答案:

答案 0 :(得分:4)

const关键字表示portNo的值固定为编译时

如果您要在类构造函数中指定它(或作为字段初始值设定项,但这种情况在这里似乎不太可能),您可以使用readonly代替const

  

readonly关键字是一个可以在字段上使用的修饰符。当字段声明包含只读修饰符时,声明引入的字段的赋值只能作为声明的一部分或在同一类的构造函数中出现。

http://msdn.microsoft.com/en-us/library/acdd6hb7.aspx

否则,请考虑另一种方法来满足您的需求,例如可能是具有私人设定者的公共财产

public int PortNo { get; private set; }

答案 1 :(得分:1)

const用于编译时常量。它们不能分配给表达式。

readonly更好,但必须在实例化时分配。你没有办法及时填写文本框;如果是的话,你也可以不使用文本框!

您需要使用标准变量来存储来自UI的输入。您可以在属性中使用私有的setter,只使该类能够设置它。

答案 2 :(得分:0)

您正在尝试为其分配变量值。常量不能变量。有关详细信息,请查看以下链接:http://msdn.microsoft.com/en-us/library/e6w8fe1b.aspx。您可以像这样使用变量整数:

int portNo = int.Parse(port_text.text);