How do I safely cast a System.Object to a `bool` in C#?

前端 未结 10 1771
情话喂你
情话喂你 2021-01-30 19:41

I am extracting a bool value from a (non-generic, heterogeneous) collection.

The as operator may only be used with reference types, so it is no

10条回答
  •  情书的邮戳
    2021-01-30 20:01

    Providing you don't actually need to keep a reference to the rawValue, here's a one-liner using the GetValueOrDefault() method of the Nullable structure:

    bool value = (map.GetValue(key) as bool?).GetValueOrDefault();
    

    You can also specify a default value using the method overload GetValueOrDefault(T).

提交回复
热议问题