1

我目前正在学习C#,我真的很想从一开始就获得一个好的编码风格,所以我想听听各位专业人士对这个问题的意见。

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

示例 1。

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

示例 2。

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

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

4

7 回答 7

4

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

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

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

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

于 2012-07-11T22:08:19.340 回答
1

我在生产代码中看到了很多示例 1。只要表达简单,并且容易理解发生的逻辑,我想你不会发现很多人认为这是不好的风格

尽管您可能会发现很多人的喜好不同。:)

于 2012-07-11T22:08:13.037 回答
1

这是我使用的规则:如果您可以快速浏览并确切知道它在说什么,请将其放在一条线上。如果它太复杂而无法像阅读任何其他文本一样快速阅读,请给它一个局部变量。但是,无论如何,您都不需要很长的 if 语句标题。所以如果太长,就分开。

于 2012-07-11T22:12:52.550 回答
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
}

它太长了,它使代码难以阅读。所以有时局部变量会使代码更具可读性。

于 2012-07-11T22:26:54.927 回答
1

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

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

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

于 2012-07-12T01:45:08.977 回答
0

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

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

于 2012-07-11T22:08:57.920 回答
0

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

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

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

如果你正在学习,你会有很多东西要学,上面的风格清楚地告诉你 TryParse 返回一个布尔值,所以你不必担心或找到 TryParse 的返回类型是什么

于 2012-07-11T22:16:42.503 回答