【发布时间】:2010-09-02 19:25:27
【问题描述】:
1) 我知道if…else if 语句是如何工作的,但是在下一个示例中,就结果值而言,这两种方法都是相同的。那么我使用这两种方法中的哪一种,或者我应该总是选择一种在语义上最接近代码试图做的事情是否重要(这里我猜这两种方法在语义上是完全不同的)?那么你会使用哪种方法,为什么?
protected string GetNumberDescription(int value)
{
if (value >= veryBigNumber)
return veryBigNumberDescription;
else if (value >= bigNumber)
return bigNumberDescription;
else if (value >= smallNumber)
return smallNumberDescription;
else
return "";
}
protected string GetNumberDescription(int value)
{
if (value >= veryBigNumber)
return veryBigNumberDescription;
if (value >= bigNumber)
return bigNumberDescription;
if (value >= smallNumber)
return smallNumberDescription;
else
return "";
}
2) 我注意到在编写if ... else if 语句时丢失的代码使用以下格式:
if ...
else if ...
else ...
但不是(至少在概念上)更正确的方式:
if ...
else
if ...
else ...
【问题讨论】:
-
Java 上下文中的类似问题:stackoverflow.com/questions/3579918/…
-
当有人在 ifs 块处理的某处插入 else if 语句时,执行第一个可能会导致问题。问题是代码冗余和性能问题
-
请记住,if/else,像 switch() 经常表示糟糕的 OO。在您的情况下,每次有人添加新级别的数字时,您都会强制编辑您的 if 块 - 将它们放入集合中并对其进行迭代。
标签: c# coding-style