C#異なるタイプのメンバー変数(フィールド)のデフォルト値
1634 ワード
C#コンパイラは各タイプにデフォルトのタイプを設定していますが、オブジェクト向けの設計原則として変数を正しく初期化する必要があります.実はこれもC#おすすめの作り方
クラスのインスタンスを作成するとき、コンストラクション関数を実行する前に、メンバー変数に初期値を割り当てなかった場合、C#コンパイラはデフォルトで各メンバー変数をデフォルト値に初期化します.
変数がメソッドのローカル変数である場合、コンパイラは、その変数を使用する前に、コードが表示する値を設定する必要があると考えます.値が割り当てられていないローカル変数が使用されているとエラーが発生します.
他の場合、コンパイラは変数を作成するときに変数をデフォルト値に初期化します.1、整数型、浮動小数点型、列挙型(数値型)のデフォルト値は0または0.0です.2、文字タイプのデフォルト値はx 0000です.3、ブールタイプのデフォルト値はfalseです.4、参照タイプのデフォルト値はnullです.
音響時変数の場合は初期値(int i=10;)を指定し、では、この値は変数を初期化するために使用されます.
C#コンパイラは各タイプにデフォルトのタイプを設定していますが、オブジェクト向けの設計原則として変数を正しく初期化する必要があります.実際にはC#が推奨していますが、変数を初期化しないとコンパイラから警告メッセージが表示されます.すべてのメンバー変数に初期値を割り当てることはできません.もちろん、値を割り当てるだけでなく、必ずしも私たちの要求を満たすわけではありません.私たちが使用している間に、私たちの初期値を変える可能性があります.では、コンストラクション関数を使用してメンバー変数を初期化します.
上記のプログラムでは、オブジェクトmyDogを作成すると、デフォルトのコンストラクション関数が呼び出されます.すべてのフィールドにデフォルトの値が割り当てられます.
出力結果は、myDogの名前は「」、年齢は0です.
このプロパティは、コンパイルエラーを回避できますが、変数の「先賦値、後使用」の原則に反し、これらの「無害」デフォルト値は識別しにくいエラーを生じやすく、できるだけコンストラクション関数ですべてのメンバー変数に値を割り当てることをお勧めします.
クラスのインスタンスを作成するとき、コンストラクション関数を実行する前に、メンバー変数に初期値を割り当てなかった場合、C#コンパイラはデフォルトで各メンバー変数をデフォルト値に初期化します.
変数がメソッドのローカル変数である場合、コンパイラは、その変数を使用する前に、コードが表示する値を設定する必要があると考えます.値が割り当てられていないローカル変数が使用されているとエラーが発生します.
他の場合、コンパイラは変数を作成するときに変数をデフォルト値に初期化します.1、整数型、浮動小数点型、列挙型(数値型)のデフォルト値は0または0.0です.2、文字タイプのデフォルト値はx 0000です.3、ブールタイプのデフォルト値はfalseです.4、参照タイプのデフォルト値はnullです.
音響時変数の場合は初期値(int i=10;)を指定し、では、この値は変数を初期化するために使用されます.
C#コンパイラは各タイプにデフォルトのタイプを設定していますが、オブジェクト向けの設計原則として変数を正しく初期化する必要があります.実際にはC#が推奨していますが、変数を初期化しないとコンパイラから警告メッセージが表示されます.すべてのメンバー変数に初期値を割り当てることはできません.もちろん、値を割り当てるだけでなく、必ずしも私たちの要求を満たすわけではありません.私たちが使用している間に、私たちの初期値を変える可能性があります.では、コンストラクション関数を使用してメンバー変数を初期化します.
//
using System;
public class Dog
{
public string name;
public int age;
public static void Main()
{
Dog myDog = new Dog();
Console.WriteLine("myDog “{0}”, {1}。", myDog.name, myDog.age);
}
}
上記のプログラムでは、オブジェクトmyDogを作成すると、デフォルトのコンストラクション関数が呼び出されます.すべてのフィールドにデフォルトの値が割り当てられます.
出力結果は、myDogの名前は「」、年齢は0です.
このプロパティは、コンパイルエラーを回避できますが、変数の「先賦値、後使用」の原則に反し、これらの「無害」デフォルト値は識別しにくいエラーを生じやすく、できるだけコンストラクション関数ですべてのメンバー変数に値を割り当てることをお勧めします.