c# - 在第一次使用之前声明变量有什么缺点?

标签 c# c++ c algorithm

我的一个编程哲学是在变量真正第一次被使用之前定义它。比如定义变量'x'的方式,我一般不会这样写代码:

var total =0;
var x;
for(int i=0;i<100000;i++)
{
   x = i;
   total += x;
} 

相反,我更喜欢这样:

var total = 0;
for(int i=0;i<100000;i++)
{
   var x = i;
   total = +x;
} 

这只是一个示例代码,不要关心代码的真正含义。

第二种方式有什么缺点?性能?

最佳答案

除非您真的真的需要,否则不要为性能而烦恼(提示:99% 的时间您不需要)。

我一贯的理念(已被《可读代码的艺术》等书所证实)是在尽可能小的范围内声明变量。原因是就可读性和代码理解而言,您在任何时候必须考虑的变量越少越好。在较小的范围内定义变量肯定有助于此。

此外,如果编译器能够确定(在您的示例中)将变量移出 for 循环以节省每次迭代都必须创建/销毁它的时间,则通常不会改变结果,但会有所帮助性能他会为你做。这是不关心性能的另一个原因,编译器通常比我们更聪明。

关于c# - 在第一次使用之前声明变量有什么缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17386326/

相关文章:

c# - 为什么自定义类型属性不能在泛型中继承?

c# - 在 C# Windows 应用程序中使用进度条

c++ - 没有 GCC 或 MSVC 的 Clang

c++ - Android NDK 与谷歌测试

c++ - xorshift128+ 算法的真正定义是什么?

c# - 与 WebAPI OData v4 的一对零或一对一关系

c# - 使用 IEnumerable 和多重继承时出现 BadImageFormatException

c++ - std::thread 相对于 C++ 中 pthread 的优势

java - 在循环中使用 > 和 >= 之间是否存在任何性能差异

c - C语言中如何计算文件中的空行数?