如果我声明了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/