ちょっと興味があるんだけど。
もしあなたが行くなら:
string myString;
その値はnullです。
しかし、あなたが行くなら:
int myInt;
C#でのこの変数の値は何ですか?
ありがとう
デビッド
ちょっと興味があるんだけど。
もしあなたが行くなら:
string myString;
その値はnullです。
しかし、あなたが行くなら:
int myInt;
C#でのこの変数の値は何ですか?
ありがとう
デビッド
まず、これはローカル変数ではなくフィールドにのみ適用されることに注意してください。少なくともC#内では、割り当てられるまでフィールドを読み取ることはできません。実際、適切なフラグが設定されている場合、CLRはスタックフレームを0に初期化します。これはデフォルトであると私は信じています。しかし、それが観察されることはめったにありません-あなたはいくつかの粗雑なハックを経験しなければなりません。
のデフォルト値int
は0です。どのタイプの場合も、基本的にはゼロでいっぱいのビットパターンで表される値です。値型の場合、これはパラメーターなしのコンストラクターを呼び出すのと同じであり、参照型の場合、これはnullです。
基本的に、CLRはメモリをゼロで消去します。
default(SomeType)
これは、任意のタイプに対して指定される値でもあります。
intのデフォルトは0です
intのデフォルト値は0です。
タイプごとのデフォルト値の完全なリストについては、http://msdn.microsoft.com/en-us/library/83fhsxwc.aspxを参照してください。
C#の値タイプのデフォルト値の表を次に示します。http: //msdn.microsoft.com/en-us/library/83fhsxwc.aspx 参照タイプのデフォルト値は通常nullです。
文字列は参照型です。Intは値型です。参照型は、ヒープに向けられたスタック上の単なるポインターであり、値が含まれる場合と含まれない場合があります。値型はスタック上の値ですが、常に何かに設定する必要があります。
タイプの単位化された変数の値T
は常にdefault(T)
です。すべての参照型の場合、これは null です。値の型については、@Blorgbeard が投稿したリンクを参照してください (または、それを確認するコードを記述してください)。