我正在读取sqlite阅读器的数据。它返回object
,其中大多数我都知道boolean
。将object
转换为boolean
的最佳方法是什么?
答案 0 :(得分:3)
我可能会经历TryParse
。否则你冒着抛出异常的风险。但这取决于系统的编写方式。
object x;
bool result = false;
if(bool.TryParse(string.Format("{0}", x), out result))
{
// do whatever
}
或者你可以直接演员:
bool result = (bool)x;
或使用Convert
类:
bool result = Convert.ToBoolean(x);
或者您可以使用Nullable<bool>
类型:
var result = x as bool?;
答案 1 :(得分:1)
在这种情况下,您可能需要as operator。请注意,您的类型为bool?
。
答案 2 :(得分:1)
像这样:
bool? val = YourValue as bool?;
if (val != null)
{
....
}
答案 3 :(得分:0)
尝试转换它。
var boolValue = (bool)yourObject;
答案 4 :(得分:0)
如果你想要一个布尔类型的对象,你只需要检查对象is
是否是一个bool,然后将其强制转换,如下所示:
if (someObject is bool)
{
bool someBool = (bool)someObject;
...
}
作为旁注,不能在非引用类型上使用as
运算符(因为它不能为null)。此问题可能与this一个问题重复。