C# 我应该将 bool 初始化为 false 还是应该在 else 语句中将其设为 false?最佳实践?

0 c# boolean

我有以下两段代码,其中一段我将isSpclCharbool初始化为false,另一段我稍后在 else 语句中捕获错误状态:

static bool CheckSpclChar(char _letter)
{
    bool isSpclChar = false;

    if(_letter == '!' || _letter == '@')
    {
        isSpclChar = true;
    }

    return isSpclChar;
}
Run Code Online (Sandbox Code Playgroud)

和:

static bool CheckSpclChar(char _letter)
{
    bool isSpclChar;

    if(_letter == '!' || _letter == '@')
    {
        isSpclChar = true;
    }
    else
    {
    isSpclChar = false;
    }

    return isSpclChar;
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,哪些是最佳实践或不太容易出错?一点都不重要吗?

Jon*_*eet 7

else根本不需要:

bool isSpecialChar = _letter == '!' || _letter == '@';
Run Code Online (Sandbox Code Playgroud)

事实上,您的整个方法可以简化为:

static bool CheckSpecialChar(char letter) => letter == '!' || letter == '@';
Run Code Online (Sandbox Code Playgroud)

我已将“Spcl”扩展为“Special”以获得更好的可读性,并从参数名称中删除了前导前缀以遵循.NET 约定。您可能还想考虑使用Is代替Check.

最后,您可能还想避免在方法名称中使用“特殊”一词。当我听到“特殊字符”这个词时,我往往会畏缩,因为没有更具体的上下文,它毫无意义。什么!@在这方面是什么意思?您是否可以提供更有用的描述,例如IsEscapePrefix或类似的内容?