Вы бы перегрузили операторы true
или false
, если бы определяли специализированное логическое значение. Однако это обычно не требуется, поэтому они не кажутся полезными. Например, в логическом классе с нечеткой логикой у вас может быть что-то вроде этого:
// Represents a boolean that can store truth values in a range from [0, 1], with
// a value of one indicating complete metaphysical certitude and a value of
// zero indicating complete impossibility.
public class FuzzyBoolean {
// ...
public static bool operator true(FuzzyBoolean fb) {
return fb.TruthValue > 0;
}
public static bool operator false(FuzzyBoolean fb) {
return fb.TruthValue == 0;
}
// ...
}
Обратите внимание, что если вы перегрузите true
, вы также должны перегрузить false
(и наоборот).
Конечно, есть также литералы true
и false
, два литеральных значения, которые вы можете назначить логическому экземпляру. Не путайте их с операторами, упомянутыми выше. Более существенный пример того, как вы использовали бы это, включая логические значения в базе данных, приведен в документах MSDN здесь .