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

本文关键字:字段 于字段 const 设置 | 更新日期: 2023-09-27 18:09:41

我有一个变量必须是常量(端口号)我想让它等于一个字段的值(port_text)我试着这样做:

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

但是它说赋值给portNo的表达式必须是常量…什么好主意吗?

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

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

如果你在类构造函数中赋值(或作为字段初始化器,但这种情况在这里似乎不太可能),你可以使用readonly而不是const

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

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

否则,考虑另一种方法来满足您的需求,例如使用带有私有setter的公共属性

public int PortNo { get; private set; }

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

readonly更好,但它必须在实例化时分配。你的文本框不可能及时被填充;如果是的话,你最好不要使用这个文本框!

您需要使用一个标准变量来存储来自UI的输入。你可以在一个属性中使用私有设置器,使只有这个类才能设置它。

您正在尝试分配一个变量值。常量不能是变量。查看以下链接获取更多信息:http://msdn.microsoft.com/en-us/library/e6w8fe1b.aspx。你可以像这样使用一个变量整数:

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