好的,所以我有一个名为“Var1”的int:
public const int Var1 = 0;
现在我想将它分配给Int32值,如下所示:
Var1 = Convert.ToInt32(Console.ReadLine());
然后它会给我这个错误:
作业的左侧必须是变量,属性或索引器
帮助?我是新手,对不起,如果这是一个简单的错误。
答案 0 :(得分:3)
答案 1 :(得分:2)
想想你在那里做了什么:
public const int Var1 = 0;
const
表示 CONSTANT 。这意味着您无法更改它。
答案 2 :(得分:1)
const
是常量;您无法在运行时更改其值(并且iNitial明矾必须是在编译器中评估的常量表达式。)
只需删除const
即可。
public int Var1 = 0;
// ...
Var1 = Convert.ToInt32(Console.ReadLine());
答案 3 :(得分:0)
你宣称Var1
为const(这本身就是一个矛盾的说法)。
const
成员无法修改,因此无法分配。如果您希望Var1
可变,请删除const
修饰符:
public int Var1 = 0;
请注意,您无需将成员显式初始化为0
,因为它是int
类型的默认值。你只需写:
public int Var1;
我还建议成员private
并通过public
属性将其暴露给外界,这被认为是更好的封装实践:
private int _var1;
public int Var1
{
get {
return _var1;
}
set {
_var1 = value;
}
}
答案 4 :(得分:0)
嗯,Var1被声明为const字段,这意味着你无法改变它的值。如果要更改Var1的值,则必须删除“const”限定符。