码迷,mamicode.com
首页 > 其他好文 > 详细

如何:从 bool? 安全地强制转换为 bool(C# 编程指南)

时间:2014-09-12 18:48:43      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:style   http   color   io   os   使用   ar   for   div   

bool? 可以为 null 的类型可以包含三个不同的值:truefalse 和 null。因此,bool? 类型不能用于条件语句,如 iffor 或 while。例如,此代码无法编译,并将报告编译器错误 CS0266

bool? b = null;
if (b) // Error CS0266.
{
}


这是不允许的,因为 null 在条件上下文中的含义并不清楚。若要在条件语句中使用 bool?,请首先检查其 HasValue 属性以确保其值不是 null,然后将它强制转换为 bool。有关更多信息,请参见 bool。如果对使用 null 值的 bool? 执行强制转换,则在条件测试中将引发 InvalidOperationException。下面的示例演示了一种从 bool? 安全地强制转换为 bool 的方法:

           bool? test = null;
             ...// Other code that may or may not
                // give a value to test.
            if(!test.HasValue) //check for a value
            {
                // Assume that IsInitialized
                // returns either true or false.
                test = IsInitialized();
            }
            if((bool)test) //now this cast is safe
            {
               // Do something.
            }

来自

如何:从 bool? 安全地强制转换为 bool(C# 编程指南)

标签:style   http   color   io   os   使用   ar   for   div   

原文地址:http://www.cnblogs.com/beijing2020/p/3968766.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!