やあみんな私はc#が初めてです。私はこの本を読んでいましたが、空欄を埋めると __ は値を変更できないデータ フィールドまたはローカル変数ですか? と書かれています。誰か答えを教えてくれませんか?ありがとう。ps: まったくの初心者 YouTube を検索しましたが、コードがめちゃくちゃでした。ありがとう。
質問する
904 次
2 に答える
3
完全な答えは 2 つあります。
1) プリミティブ型 ( int
、double
、string
など) の場合、const
修飾子を使用できます。これは実際、この型の変数の値を決して変更できないことを意味します。
2) 非プリミティブ型の場合、readonly
修飾子が存在します。const
非プリミティブ型には適用できないことに注意してください。これは、参照型と値型で同じことを意味します。この変数への
参照は、このオブジェクトの構築後に変更できません。ただし、結果は異なります。
2.1)readonly
オブジェクト自体は、パブリック API を使用して変更できます。例えば:
class Foo{
private readonly List<int> list;
public Foo(){ list = new List<int>();}
public Test()
{
list = new List<int>(); // invalid; your reference is readonly
list.add(5);//works, you are changing the object, but not touching it's reference
}
}
2.2) 値型readonly
の場合、修飾子を使用する際は注意が必要readonly
です。変更可能な構造体で微妙なエラーが発生する可能性があります。C#を参照してください: readonly 構造体のミューテーションが壊れないのはなぜですか? 例えば。ただし、あなたstruct
が不変の場合、const
キーワードのセマンティクスを効果的に取得します
于 2013-09-23T16:22:28.887 に答える
2
答えは定数です。ここにリンクがありますこれを読んでください
于 2013-09-23T16:14:39.477 に答える