我需要检查返回值是否为布尔值?价值可能会返回以下
0
1
true
false
答案 0 :(得分:3)
在C#中,Convert.ToBoolean
方法应该涵盖您要测试string
或int
的两种情况,有各种overloads即
var boolVar = Convert.ToBoolean("true"); // true
boolVar = Convert.ToBoolean(1); // true
在JavaScript中,您可以使用
var bool = new Boolean(true); // true
bool = new Boolean(1); // true
bool = new Boolean(false) // false
bool = new Boolean("Hello") // true (one of the caveats)
但是,您应该注意使用Boolean
一些caveats - 请确保不要将Boolean
对象(即var x = new Boolean(...)
)与布尔基元混淆(即var x = false
)。如果你只是想检查你的值是否是一个布尔值,即对它的值不感兴趣,那么明确检查它可能更可靠。例如。
if (x === "true" || x === "false" || x === 1 || x === 0) {
}
答案 1 :(得分:-2)
我可以告诉你,你提供的是与你提供的值匹配的下面的正则表达式
(0|1|true|false)
答案 2 :(得分:-2)
C#都可以使用自定义转换器
public class BooleanConverter : System.ComponentModel.BooleanConverter
{
public override bool IsValid(ITypeDescriptorContext context, object value)
{
try
{
byte b = Convert.ToByte(value);
return b == 0 || b == 1 || base.IsValid(context, value);
}
catch
{
return base.IsValid(context, value);
}
}
}