我目前正在学习C#,我真的希望从一开始就能获得良好的编码风格,所以我想听听专家对此事的看法。
您是否总是(或大部分)使用局部变量进行条件/计算(示例2),或者直接使用语句(示例1)同样好/更好
示例1。
if (double.TryParse(stringToParse, out dblValue)) ...
示例2。
bool parseSuccess = double.TryParse(stringToParse, out dblValue);
if (parseSuccess) ...
在这个例子中听到你的想法和推理会很有趣。
答案 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的返回类型