C# C将泛型对象转换为布尔值

C# C将泛型对象转换为布尔值,c#,C#,我正在从sqlite阅读器读取数据。它返回一个对象,我知道的大多数对象都是布尔值。将对象转换为布尔值的最佳方法是什么?在这种情况下,您可能需要。请记住,您的类型将是bool?在这种情况下,您可能需要。记住,你的类型会是一个傻瓜?我可能会经历特里帕斯。否则,您将面临引发异常的风险。但这取决于系统的编写方式 object x; bool result = false; if(bool.TryParse(string.Format("{0}", x), out result)) { //

我正在从sqlite阅读器读取数据。它返回一个对象,我知道的大多数对象都是布尔值。将对象转换为布尔值的最佳方法是什么?

在这种情况下,您可能需要。请记住,您的类型将是bool?

在这种情况下,您可能需要。记住,你的类型会是一个傻瓜?

我可能会经历特里帕斯。否则,您将面临引发异常的风险。但这取决于系统的编写方式

object x;

bool result = false;

if(bool.TryParse(string.Format("{0}", x), out result))
{
    // do whatever
}
或者,您可以进行直接播放:

bool result = (bool)x;
或者使用Convert类:

也可以使用可为空的类型:


我可能会经历特里帕斯。否则,您将面临引发异常的风险。但这取决于系统的编写方式

object x;

bool result = false;

if(bool.TryParse(string.Format("{0}", x), out result))
{
    // do whatever
}
或者,您可以进行直接播放:

bool result = (bool)x;
或者使用Convert类:

也可以使用可为空的类型:

像这样:

bool? val = YourValue as bool?;
if (val != null)
{
   ....
}
像这样:

bool? val = YourValue as bool?;
if (val != null)
{
   ....
}
尝试转换它

var boolValue = (bool)yourObject;
尝试转换它

var boolValue = (bool)yourObject;

如果要将对象转换为布尔类型,只需检查对象是否为布尔,然后将其强制转换,如下所示:

if (someObject is bool)
{
    bool someBool = (bool)someObject;
    ...
}

作为补充说明,不可能在非引用类型上使用As运算符,因为它不能为null。这个问题可能是一个问题的重复。

如果您想将对象转换为布尔类型,只需检查对象是否为布尔,然后将其强制转换,如下所示:

if (someObject is bool)
{
    bool someBool = (bool)someObject;
    ...
}

作为补充说明,不可能在非引用类型上使用As运算符,因为它不能为null。这个问题可能是一个问题的重复。

如果你知道它是一个布尔值,你应该能够直接将它转换为:var yourobj=boolvaluefromreader;出于某种原因,这似乎不起作用,但我想它起作用了。我想我是想同时把它转换成一个字符串。谢谢你。当我试着像var obj=boolreader[field]一样强制转换它时,我得到了一个无效的强制转换。如果你知道它是一个布尔值,你应该能够强制转换它:var yourbj=boolvaluefromreader;出于某种原因,这似乎不起作用,但我想它起作用了。我想我是想同时把它转换成一个字符串。谢谢你。当我尝试像var obj=boolreader[field]那样强制转换时,我得到了一个无效的强制转换。这不是一个好方法,因为它会在失败时抛出异常。使用tryParsethis不是一个好方法,因为它会在失败时抛出异常。使用tryParseI认为这会起作用,也是我第一次尝试的,但我确实需要一个bool,谢谢我认为这会起作用,也是我第一次尝试的,但我确实需要一个bool,谢谢