さて、私は「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());
次に、このエラーが発生します。
割り当ての左側は、変数、プロパティ、またはインデクサーである必要があります
ヘルプ?私はこれに不慣れです、これが単純な間違いであるならば申し訳ありません。
const
キーワードは、フィールドが定数であるため、宣言時に1回だけ割り当てることができることを意味します。
値を割り当てた0
ため、後で新しい値で上書きすることはできません。
問題を修正するために修飾子を削除してください。
そこで何をしているのか考えてみてください。
public const int Var1 = 0;
const
CONSTANTを意味します。それはあなたがそれを変えることができないことを意味します。
Aconst
は定数です; 実行時にその値を変更することはできません(そして、iNitialミョウバンはコンパイラで評価される定数式でなければなりません)。
を削除するだけで、const
うまくいくはずです。
public int Var1 = 0;
// ...
Var1 = Convert.ToInt32(Console.ReadLine());
あなたはconstVar1
として宣言しています(これはそれ自体がかなりの撞着語です)。
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;
}
}
そうですね、Var1はconstフィールドとして宣言されています。つまり、その値を変更することはできません。Var1の値を変更する場合は、「const」修飾子を削除する必要があります。