好的,所以我有一个叫做“Var1”的int:
public const int Var1 = 0;
现在我想将它分配给一个 Int32 值,如下所示:
Var1 = Convert.ToInt32(Console.ReadLine());
然后它会给我这个错误:
赋值的左侧必须是变量、属性或索引器
帮助?我是新手,如果这是一个简单的错误,我很抱歉。
好的,所以我有一个叫做“Var1”的int:
public const int Var1 = 0;
现在我想将它分配给一个 Int32 值,如下所示:
Var1 = Convert.ToInt32(Console.ReadLine());
然后它会给我这个错误:
赋值的左侧必须是变量、属性或索引器
帮助?我是新手,如果这是一个简单的错误,我很抱歉。
想想你在那里做什么:
public const int Var1 = 0;
const
表示常数。这意味着您无法更改它。
Aconst
是一个常数;您不能在运行时更改其值(并且 iNitial alum 必须是在编译器处评估的常量表达式)。
只需删除const
并且事情应该可以工作:
public int Var1 = 0;
// ...
Var1 = Convert.ToInt32(Console.ReadLine());
您声明Var1
为const(这本身就是一个矛盾的说法)。
const
成员无法修改,因此无法分配给。如果要Var1
可变,请删除const
修饰符:
public int Var1 = 0;
请注意,您不需要将成员显式初始化为0
,因为它是int
类型的默认值。你只需要写:
public int Var1;
我还建议制作成员private
并通过 aa 属性将其暴露给外界public
,这被认为是一种更好的封装做法:
private int _var1;
public int Var1
{
get {
return _var1;
}
set {
_var1 = value;
}
}
好吧, Var1 被声明为 const 字段,这意味着您无法更改其值。如果要更改 Var1 的值,则必须删除“const”限定符。