는 다음 코드 줄을 고려암시 적으로 SqlBoolean 형식을 bool로 변환 할 수 없습니까?
이System.Data.SqlTypes.SqlBoolean sb = true; // (1)
bool b = sb; // (2)
bool b = sb ? true : false; // (3)
if (sb) // (4)
{
}
(1) 잘 작동, 내가 때문에 public static implicit operator SqlBoolean(bool x)
의 같아요.
암시 '부울'에 유형 'System.Data.SqlTypes.SqlBoolean을'변환 할 수 없습니다 :
(2)는 나에게 다음과 같은 오류 (CS0266)를 제공합니다. 명시 적 변환 (당신이 캐스트를 누락?)
내가 SqlBoolean
-bool
에서 변환 (public static explicit operator bool(SqlBoolean x)
) 명시적인 것을 이해 존재 가능성 때문에 SqlBoolean.IsNull
에 해당 할 수 있습니다.
그런데 왜 (3)과 (4)이 작동합니까? 이는 암시 적 전환처럼 보입니다.
당신은'부울 B = (BOOL) SB를 시도 참조;'? –
나는 그것이 얻을 수있는만큼 명시 적으로 당신의 요지를 얻지 못합니다. – xehpuk
나는 명시적인 변환을 사용하여 달성 할 수있는 유일한 방법이 있다고 말하고 싶었다. –