Может быть, вы считаете этот вопрос тривиальным, но им просто любопытно, каково ваше мнение.
У меня три радиообмена. "Показать синий", "Показать красный" и "Показать все".
Я сделал это с нулевым логическим значением. В базе данных есть столбец, где синий - 0, а красный - 1, поэтому в metode мне нужно перевести bool в int, чтобы сравнить эти значения (я делаю это в С#). Конечно, это работает, но я задаюсь вопросом, является ли это лучшим решением.
И вопрос в том, какой тип лучше в этом случае? nullable bool, int или, может быть, строка?
bool
имеет только два возможных значения: true или false. Если вам нужно представить больше значений, вам нужно сохранить их каким-либо другим способом.
Использование нулевого значения в качестве третьего значения является уродливым взломом кода.
Из wiki:
хороший способ запомнить, что означает "нуль", чтобы помнить, что с точки зрения информации "недостаток значения" - это не то же самое, что "значение нуля",
То есть, null должен использоваться, когда у вас нет значения.
В вашем случае использование enum
будет легче читать и понимать, а также вы сможете добавить дополнительные опции позже, если это возникнет.
enum MyTypes{
blue = 1,
red = 2,
all = 3
}
В базе данных enum
становится столбцом int, содержащим значение выбранного параметра.