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

C# Should I initialize a bool as false or should I make it false in an else statement? Best practice?

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

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

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

    return isSpclChar;
}

并且:

static bool CheckSpclChar(char _letter)
{
    bool isSpclChar;

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

    return isSpclChar;
}

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

根本不需要 else:

bool isSpecialChar = _letter == '!' || _letter == '@';

其实你的整个方法可以简化为:

static bool CheckSpecialChar(char letter) => letter == '!' || letter == '@';

为了更好的可读性,我将“Spcl”扩展为“Special”,并从参数名称中删除了前导前缀以跟在 .NET conventions 之后。您可能还想考虑使用 Is 而不是 Check.

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

当我们需要使用那个值时,我们应该使用变量,否则你只需要写你的方法如下。如果这有意义,请告诉我?

static bool CheckSpclChar(char _letter)
 {
     if(_letter == '!' || _letter == '@')
     {
       return true;
     }

     return false;
}