C #에서 nullable bool?
을 어떻게 변환 bool
합니까?
나는 시도 x.Value
했거나 x.HasValue
…
답변
궁극적으로 null bool이 무엇을 나타낼 지 결정해야합니다. 경우 null
이어야한다 false
, 당신은이 작업을 수행 할 수 있습니다 :
bool newBool = x.HasValue ? x.Value : false;
또는:
bool newBool = x.HasValue && x.Value;
또는:
bool newBool = x ?? false;
답변
당신은 사용할 수 있습니다 널 병합 연산자 : x ?? something
, something
경우에 당신이 사용하고자하는 부울 값 x
입니다 null
.
예:
bool? myBool = null;
bool newBool = myBool ?? false;
newBool
거짓이 될 것입니다.
답변
Nullable{T}
GetValueOrDefault()
방법 을 사용할 수 있습니다 . null 인 경우 false를 반환합니다.
bool? nullableBool = null;
bool actualBool = nullableBool.GetValueOrDefault();
답변
당신이 사용하려고하는 경우 bool?
에 if
문 제가 할 수있는 가장 쉬운 방법 중 하나에 대해 비교하는 것입니다 찾을 수 true
또는 false
.
bool? b = ...;
if (b == true) { Debug.WriteLine("true"; }
if (b == false) { Debug.WriteLine("false"; }
if (b != true) { Debug.WriteLine("false or null"; }
if (b != false) { Debug.WriteLine("true or null"; }
물론 null과 비교할 수도 있습니다.
bool? b = ...;
if (b == null) { Debug.WriteLine("null"; }
if (b != null) { Debug.WriteLine("true or false"; }
if (b.HasValue) { Debug.WriteLine("true or false"; }
//HasValue and != null will ALWAYS return the same value, so use whatever you like.
응용 프로그램의 다른 부분으로 전달하기 위해 bool로 변환하려는 경우 Null Coalesce 연산자가 원하는 것입니다.
bool? b = ...;
bool b2 = b ?? true; // null becomes true
b2 = b ?? false; // null becomes false
이미 null을 확인하고 값만 원하는 경우 Value 속성에 액세스합니다.
bool? b = ...;
if(b == null)
throw new ArgumentNullException();
else
SomeFunc(b.Value);
답변
가장 쉬운 방법은 null 병합 연산자를 사용하는 것입니다. ??
bool? x = ...;
if (x ?? true) {
}
??
널 (NULL) 값은 제공 가능 표현식을 검사하여 작동합니다. nullable 표현식에 값이 있으면 해당 값이 사용됩니다. 그렇지 않으면 오른쪽에있는 표현식을 사용합니다.??
답변
bool? a = null;
bool b = Convert.toBoolean(a);
답변
완전한 방법은 다음과 같습니다.
bool b1;
bool? b2 = ???;
if (b2.HasValue)
b1 = b2.Value;
또는 다음을 사용하여 특정 값을 테스트 할 수 있습니다.
bool b3 = (b2 == true); // b2 is true, not false or null