0

这是原始源代码,其中包含一个非常常见的代码模式,我认为它是一种反模式,或者充其量是不必要的冗长:

private bool SymbolDevice;
. . .
    if((oemInfo.IndexOf("SYMBOL") > -1) || (oemInfo.IndexOf("MOTOROLA") > -1))
                            SymbolDevice = true;
                        else
                        {
                            SymbolDevice = false;
                        }

我会这样重构它:

SymbolDevice = ((oemInfo.IndexOf("SYMBOL") > -1) || (oemInfo.IndexOf("MOTOROLA") > -1));

Resharper(版本 2.0,可用于 Visual Studio 2003 / .NET 1.1 的最后一个版本,该项目是)以这种方式重构它:

SymbolDevice = (oemInfo.IndexOf("SYMBOL") > -1) || (oemInfo.IndexOf("MOTOROLA") > -1) ? true : false;

我同意 Resharper 的重构改进了遗留代码,但是我有什么理由选择它而不是我的版本吗?

4

1 回答 1

7

我肯定会选择你的版本。x ? true : false相当于x

于 2013-02-25T22:03:35.150 回答