-1

次の構造のコードをたくさん見ました。

public void Blah()
{
    int a = 0;
    string b = "";
    DateTime c = DateTime.MinValue;
    bool d = false;
    // ...More initializations with dummy values

    // Overwrite the values in a, b, c, d, e.g. a = ReturnInt();

    // Do calculations, reading the values from a, b, c, d, like DoCalculations(a);
}

一般的に、私は次のようなものを好みます。

public void Blah()
{
    int a = GetInt();
    string b = GetString();
    DateTime c = GetDateTime();
    bool d = GetBool();

    // Do calculations, reading the values from a, b, c, d, like DoCalculations(a);
}

それは本当に必要であり、余分な初期化によるパフォーマンスへの影響はありますか?

4

2 に答える 2

5

read変数は、初期化の直後に上書きする場合にのみ、使用前に初期化する必要があります。主に読みやすさの目的で、表示されている2番目のスタイルに従うことをお勧めします。通常、いずれも最小限に抑えられます。

于 2013-01-18T01:44:17.250 に答える
-1

変数の初期化は、多くの開発者が使用する一般的な標準です。

言語と環境によっては、初期化されていない変数を読み取ると未定義の動作が発生する可能性があるため、変数の初期化が行われます。また、変数が自動的に初期化される場合とされない場合がある正確な条件を覚えるのは難しいため、人々はオブジェクトを使用する前に常にオブジェクトを初期化する傾向があります。

一般に、コンストラクターでこの初期化を実行することをお勧めします。

また、ScottMeyersの非常に人気のある本EffectiveC++でも具体的に言及されています。

  • 項目4:オブジェクトを使用する前に、オブジェクトが初期化されていることを確認してください。
于 2013-01-18T02:43:13.927 に答える