如何:从 bool? 安全地强制转换为 bool(C# 编程指南)
2024-10-06 10:37:37
bool? 可以为 null 的类型可以包含三个不同的值:true、false 和 null。因此,bool? 类型不能用于条件语句,如 if、for 或 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.
}
最新文章
- 就这么漂来漂去---一个毕业三个月的java程序员的裸辞风波
- CSS深入理解之overflow
- Android性能优化的浅谈
- PL/Proxy介绍
- threejs构建web三维视图入门教程
- android坐标
- highchairts柱状图显示数值并且带单位
- [转]Easy Stored Procedure Output Oracle Select
- the convertion between string and BlobColumn
- WinForm 控件(下)
- “使用多target来构建大量相似App”,唐巧大神理论验证(附工程代码地址)
- Liunx的DHCP配置
- u盘安装ubuntu10.04 、11.04 server
- android SlidingmMenu的入门介绍
- web安全认证机制知多少
- js实现消息滚动效果
- kvm创建新虚拟机
- Java18-java语法基础——集合框架
- Harbor api 操作
- cdnbest如何查看站点操作日志(同步日志)