C#将通用对象转换为布尔值

时间:2015-07-24 19:29:12

标签: c#

我正在读取sqlite阅读器的数据。它返回object,其中大多数我都知道boolean。将object转换为boolean的最佳方法是什么?

5 个答案:

答案 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一个问题重复。