有什么方法可以使用C#实现从string
到bool
的隐式转换?
E.g。我的字符串str
的值为 Y ,当我尝试将(转换)转换为boolean
时,它必须返回true
。
答案 0 :(得分:6)
没有。您无法创建用户定义的转化,这些转化不会转换为他们声明的类型。
你最容易接近的是扩展方法,例如
public static bool ToBoolean(this string text)
{
return text == "Y"; // Or whatever
}
然后你可以使用:
bool result = text.ToBoolean();
但是你无法将其作为隐式转换 - 即使你可以,我建议你不要为了便于阅读。
答案 1 :(得分:4)
这是一个可用于任何字符串的扩展方法。
public static bool ToBoolean(this string input)
{
var stringTrueValues = new[] { "true", "ok", "yes", "1", "y" };
return stringTrueValues.Contains(input.ToLower());
}
以下是使用此扩展方法的示例:
Console.WriteLine("y".ToBoolean());
结果为True
。
答案 2 :(得分:1)
您需要自己制作方法。没有办法只将一个字符串转换为bool。如果字符串不为空,你最终会得到true,我相信。只需创建一个布尔方法,如果传递的字符串为y,则返回true,否则返回