局部变量或直接陈述?

时间:2012-07-11 22:05:07

标签: c# coding-style

我目前正在学习C#,我真的希望从一开始就能获得良好的编码风格,所以我想听听专家对此事的看法。

您是否总是(或大部分)使用局部变量进行条件/计算(示例2),或者直接使用语句(示例1)同样好/更好

示例1。

if (double.TryParse(stringToParse, out dblValue)) ...

示例2。

bool parseSuccess = double.TryParse(stringToParse, out dblValue);
if (parseSuccess) ...

在这个例子中听到你的想法和推理会很有趣。

7 个答案:

答案 0 :(得分:4)

如果将所有内容放在一行中会使它太长或太复杂,你应该使用更详细的样式。

如果变量的名称更容易理解代码,您还应该使用单独的变量:

bool mustWait = someCommand.ConflictsWith(otherCommand);
if (mustWait) {
    ...
}

在这种情况下,您应该考虑使用枚举来提高可读性。

答案 1 :(得分:1)

我在生产代码中看到很多示例1。只要表达式很简单,并且很容易理解正在发生的事情的逻辑,我认为你不会发现许多人认为它是糟糕的风格

虽然您可能会发现很多人有不同的偏好。 :)

答案 2 :(得分:1)

继承我使用的规则:如果你能快速浏览它并确切地知道它在说什么,就把它保持在一条线上。如果它太复杂,无法读取任何其他文本,请给它一个局部变量。但是,在任何情况下,您都不需要一个非常长的if语句头。所以,如果时间过长,请将其分开。

答案 3 :(得分:1)

我建议你使用像这里的局部变量:

bool parseSuccess = double.TryParse(stringToParse, out dblValue);
if (parseSuccess) ...

有两个原因:

1。您可以使用该变量的更多次,而无需另一次解析双倍。

2。它使代码更具可读性。

考虑一下:

if(double.TryParse(string1, out Value1) && double.TryParse(string2, out Value2) && double.TryParse(string3, out Value3) && double.TryParse(string4, out Value4))
{
    //some stuff
}

这太长了,这使得代码很难被阅读。 因此,有时局部变量带使代码更具可读性。

答案 4 :(得分:1)

源代码的清晰度是一个重要的参数,特别是在应用程序维护中,但性能也是如此。

看起来微不足道,有时使用编程语言的简单语法“技巧”,我们得到了非常好的结果。

如果我想我稍后会在代码中以某种方式使用结果,我会使用变量,否则我优先考虑直接句子。

答案 5 :(得分:0)

没有正确的选择。两者都完全可以接受。

如果您没有很多连接条件,大多数人会选择第一个选项,因为它会导致更少的代码行。

答案 6 :(得分:0)

正如你所说,你正在学习C#

所以我的投票将是这种风格

bool parseSuccess = double.TryParse(stringToParse, out dblValue);
if (parseSuccess) ...

如果你正在学习,你将有很多东西需要学习和以上 风格清楚地告诉你,TryParse返回一个bool,所以你不会有 担心或找到TryParse的返回类型