如果我声明了bool isTrue = false; // init it to false

我可以从string strVal = T; // I assumed it is the TRUE value获取值

我听说在C#中比较字符串不是一种好的代码风格

if (isTrue.tostring() == strVal) {}.

一段时间,我将字符串变量转换为枚举,然后可以比较方便。

有什么好的方法吗?

最佳答案

是的,您首先将字符串解析为布尔值。

尝试这个:

bool someBool = false;

string boolVal = "true";
bool stringBool;
bool.TryParse(boolVal, out stringBool);

if (someBool == boolVal)
{

}


要处理“ T”和“ F”,请尝试以下方法:

public bool ParseString(string maybeBool)
{
    return ParseString(maybeBool, false);
}

public bool ParseString(string maybeBool, bool def)
{
    bool stringBool;
    if (bool.TryParse(maybeBool, out stringBool))
        return stringBool;

    if (string.Equals(maybeBool, "T", StringComparison.OrdinalIgnoreCase))
        return true;

    if (string.Equals(maybeBool, "F", StringComparison.OrdinalIgnoreCase))
        return false;

    return def;
}

关于c# - C#中的 bool 变量和字符串值比较,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3178070/

10-13 09:09