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范围值+ 上可为空的值。

C