-5

好的,所以我有一个叫做“Var1”的int:

public const int Var1 = 0;

现在我想将它分配给一个 Int32 值,如下所示:

Var1 = Convert.ToInt32(Console.ReadLine());

然后它会给我这个错误:

赋值的左侧必须是变量、属性或索引器

帮助?我是新手,如果这是一个简单的错误,我很抱歉。

4

5 回答 5

3

const关键字意味着该字段是一个常量因此只能分配一次:在声明时。

您已经分配了 value 0,因此以后不能用新值覆盖它。

删除修饰符以解决您的问题。

于 2012-09-09T08:13:20.847 回答
2

想想你在那里做什么:

public const int Var1 = 0;

const表示常数。这意味着您无法更改它。

于 2012-09-09T08:14:02.173 回答
1

Aconst是一个常数;您不能在运行时更改其值(并且 iNitial alum 必须是在编译器处评估的常量表达式)。

只需删除const并且事情应该可以工作:

public int Var1 = 0;
// ...
Var1 = Convert.ToInt32(Console.ReadLine());
于 2012-09-09T08:14:22.080 回答
0

您声明Var1const(这本身就是一个矛盾的说法)。

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;
    }
}
于 2012-09-09T08:14:32.020 回答
0

好吧, Var1 被声明为 const 字段,这意味着您无法更改其值。如果要更改 Var1 的值,则必须删除“const”限定符。

于 2012-09-09T08:17:15.137 回答