C# 三态布尔值

当判断条件有三种状态时,又不想使用枚举可以使用bool?

例:

bool? isA=true;//三种状态:true,false,null
if(isA==null)
{}
else
{
    if((bool)isA)
    {}
    else
    {}
}
//或者
if(isA.HasValue)
{
    if(isA.Value)
    {}
    else
    {}
} 
else 
{ }

  

  

同理:int? ,double? ,char? ,int?[] 等都可以设置为null,

抽象来说:T 可以是包括 struct 在内的任何值类型,但不能是引用类型,那么T? 意思就是 T范围值+ 上可为空的值。

posted on 2021-12-08 15:24  Jason_c  阅读(283)  评论(0编辑  收藏  举报