как преобразовать bool в обнуляемый bool (bool?) - PullRequest
3 голосов
/ 05 октября 2011

У меня есть поставщик таблицы со столбцом

                 implied(tiny int)(something like nullable bool)
                 providerid(int)

У меня есть форма, и у меня есть флажок

Я делаю приложения winforms, используя c # ..

Я использую enitities и мое имя dbcontext - dbcontext

Как перевести bool в nullable bool (bool?) В C Sharp.

Я пробовал таким образом

      if (chkbox.checked == true)

            bool yes = 0;
        else

          bool   yes = 1;

        dbcontext.implied = yes;

но получил ошибку

Cannot convert bool to bool?

Ответы [ 5 ]

14 голосов
/ 05 октября 2011

Явно приведен к bool?

bool b = true;
bool? b2 = (bool?)b;

Если это интересно, вы можете конвертировать bool? в bool.Вы можете сделать это, сначала проверив HasValue, который вернет false, если он равен нулю, или true, если он не равен нулю.

Если он имеет значение, вы можете привести его к типу bool.

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

Проверьте http://msdn.microsoft.com/en-us/library/bb384091.aspx для bool?в bool.

3 голосов
/ 05 октября 2011

Можно напрямую сделать что-то вроде

bool result = true;
bool? toBindData = (bool?)result;
2 голосов
/ 05 октября 2011

dbcontext.implied = new Nullable<bool>(yes);

0 голосов
/ 10 июня 2019

Вот исправление:

if (Convert.ToBoolean(chkbox.checked) == true)

Или более простая версия:

if (Convert.ToBoolean(chkbox.checked))

, так как условие по умолчанию предполагает Truth оператора.

Зависимости:

using.System;
0 голосов
/ 15 мая 2014

Попробуйте Convert.ToBoolean (Ваш чекбокс)

Ниже, как я проверил на своем DataGridView, чтобы проверить CheckBox столбец, и он отлично работает.

if ( Convert.ToBoolean( dgv.Rows[r].Cells["Delete"].Value))
{
    //Do work;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...