如何将bool转换为可空的bool(bool?)

Eni*_*ate 3 .net c# linq linq-to-entities winforms

我有一个列提供者表

                 implied(tiny int)(something like nullable bool)
                 providerid(int)
Run Code Online (Sandbox Code Playgroud)

我有一个表格,我有复选框

我正在使用c#进行winforms应用程序.

我正在使用enitities,我的dbcontext名称是dbcontext

如何在C sharp中将bool转换为可空的bool(bool?).

我试过这种方式

      if (chkbox.checked == true)

            bool yes = 0;
        else

          bool   yes = 1;

        dbcontext.implied = yes;
Run Code Online (Sandbox Code Playgroud)

但是得到了一个错误

Cannot convert bool to bool?
Run Code Online (Sandbox Code Playgroud)

Kir*_*irk 15

明确地演绎到了 bool?

bool b = true;
bool? b2 = (bool?)b;
Run Code Online (Sandbox Code Playgroud)

万一感兴趣,你可以转换bool?bool.您可以通过首先检查HasValue哪些将返回falsenull(true如果它不为空)来执行此操作.

如果它有一个值,你可以强制转换为bool.

bool? b = null;
if (b.HasValue == false) // it's null
{
  //initialize b 
  b = false;
}
else if((bool)b == true)
{
  // do whatever
}
Run Code Online (Sandbox Code Playgroud)

查看http://msdn.microsoft.com/en-us/library/bb384091.aspx for bool?布尔转换.