-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如果你要在初始化后立即覆盖它,最好遵循你展示的第二种风格,主要是为了可读性,我预计性能会受到影响(来自风格#1)如果any 通常是最小的。

于 2013-01-18T01:44:17.250 回答
-1

初始化变量是许多开发人员使用的通用标准。

初始化变量是因为根据语言和环境,读取未初始化的变量可能会产生未定义的行为。而且由于变量可能自动初始化或不自动初始化的确切条件很难记住,人们往往总是在使用对象之前简单地初始化它们。

通常认为在构造函数中执行此初始化是一种好习惯。

在 Scott Meyers 非常受欢迎的书Effective C++中也特别提到了这一点。

  • 第 4 项:确保在使用对象之前对其进行初始化。
于 2013-01-18T02:43:13.927 回答