代码里这样写
bool a = this.checkBox1.IsChecked;
报的错误是无法将类型“bool?”隐式转换为“bool”。存在一个显式转换(是否缺少强制转换?)请问“bool?”是个什么类型,他和“bool”的区别是什么

解决方案 »

  1.   

    bool a = this.checkBox1.Checked
      

  2.   

    bool  不能为null
    bool?  可以为null
      

  3.   

    bool?是可空的bool,可以用HasValue来判断是否为空,也可以用等号来判断是否为真:
    bool cheked = this.checkBox1.IsChecked == true;
      

  4.   

    类型后加问号表示可空类型,本来bool是不能为null的,加了问号表示可为null.
    bool a = this.checkBox1.IsChecked == null ? false : this.checkBox1.IsChecked.Value;