c# - 在方法中放置局部变量声明的最佳实践?

标签 c# variables coding-style local-variables

<分区>

C# 最佳实践是在方法的顶部声明所有局部变量还是在它们第一次使用时就声明它们?

示例 1:

void myMethod()
{
    var example = String.Empty;
    var xmlDoc = new XmlDocument();

    xmlDoc.LoadXml("c:\my.xml");
    example = doc.SelectSingleNode("//TestNode").OuterXml;
}

示例 2:

void myMethod()
{
    var xmlDoc = new XmlDocument();

    xmlDoc.LoadXml("c:\my.xml");
    var example = doc.SelectSingleNode("//TestNode").OuterXml;
}

最佳答案

从历史上看,变量在许多语言中都是预先声明的,因为您必须预先指示编译器关联寄存器和/或在堆栈上为它们分配空间。在 .NET 中,这实际上在 IL 代码中仍然是必需的,因为它使编译器的工作更容易。

谢天谢地,C# 比 IL 级别高得多,所以我们不必担心这些细节。摆脱了这种约束,限制变量的范围有很多概念上的值(value),因为这意味着您需要查看更少的代码来了解该变量发生了什么。在方法顶部声明的变量可能会在该方法的任何地方使用。在内部“if”中声明的变量仅在该范围内使用,一旦超出该范围就可以忽略它;另外,在方法后面声明的变量只能在声明之后使用。它是微型绝缘/封装,进一步减少了开发人员必须立即考虑的事情数量,以了解给定代码段的作用。

关于c# - 在方法中放置局部变量声明的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22391744/

相关文章:

c# - 精通一种语言或了解更多语言

c# - 如何将多个程序集合并为一个程序集?

c# - 为什么在我的 asp.net 代码中多次创建我的静态对象?

c++ - 动态与非动态类成员

javascript - 全局变量的值改变了,javascript

c# - 让 VS 2008 停止强制缩进命名空间的方法?

c# - 在两个参数之间切换值 [最佳实践/更好的代码]

c# - 为什么在此示例中使用 Tuple 比使用 List 更快?

c# - WPF:具有多个数据模板的 TabControl

javascript - 使用变量名 JavaScript(字面意思)