To nie jest dozwolone, ponieważ nie jest jasne, co oznacza zero w kontekście warunkowym.
Nullable Booleans
mogą być oddane do bool
wyraźnie, aby być wykorzystane w ramach warunkowego, ale jeśli obiekt ma wartość, jeśli null, InvalidOperationException
zostanie wyrzucony.
Dlatego ważne jest sprawdzenie właściwości HasValue przed przesłaniem do bool
.
wykorzystanie takich jak
var pospurcahsed= (ispurchased.HasValue && ispurchased.Value) ?......
dopuszczające wartość null Boolean są podobne do typu Boolean zmiennej używanej w SQL. Aby zapewnić, że wyniki wyprodukowane przez & i | Operatorzy są zgodne z SQL trzech wartościach typu Boolean, następujące predefiniowane operatorzy są:
bool? operator &(bool? x, bool? y)
bool? operator |(bool? x, bool? y)
lub użyć martin
sugestię GetValueOrDefault
[Dzięki Martin do wskazując go]
Metoda GetValueOrDefault zwraca wartość, nawet jeśli właściwość HasValue
ma wartość false (w przeciwieństwie do właściwości Value, która zgłasza wyjątek).
To nie jest komunikat o błędzie pojawia, kopalnia mówi 'Nie można niejawnie przekonwertować typu" bool? do "bool". Istnieje wyraźna konwersja (czy brakuje Ci obsady?) 1' –
@George Duckett Przepraszamy za błąd literowy. – Andrew