일반적으로 물음표의 주요 용도는 조건부 x ? "yes" : "no"
입니다.
그러나 다른 용도로 보았지만 ?
예를 들어 연산자 사용에 대한 설명을 찾을 수 없습니다 .
public int? myProperty
{
get;
set;
}
답변
해당 값 유형이 널 입력 가능 유형 임을 의미합니다.
널 입력 가능 유형은 System.Nullable 구조체의 인스턴스입니다. 널 입력 가능 유형은 기본 값 유형에 대한 올바른 값 범위와 추가 널 값을 나타낼 수 있습니다. 예를 들어
Nullable<Int32>
“Nullable of Int32″로 발음되는 -2147483648에서 2147483647 사이의 값을 지정하거나 null 값을 지정할 수 있습니다. A에Nullable<bool>
true, false 또는 null 값을 할당 할 수 있습니다. 숫자 및 부울 유형에 널을 지정하는 기능은 값이 지정되지 않은 요소가 포함 된 데이터베이스 및 기타 데이터 유형을 처리 할 때 특히 유용합니다. 예를 들어, 데이터베이스의 부울 필드는 true 또는 false 값을 저장하거나 정의되지 않을 수 있습니다.class NullableExample { static void Main() { int? num = null; // Is the HasValue property true? if (num.HasValue) { System.Console.WriteLine("num = " + num.Value); } else { System.Console.WriteLine("num = Null"); } // y is set to zero int y = num.GetValueOrDefault(); // num.Value throws an InvalidOperationException if num.HasValue is false try { y = num.Value; } catch (System.InvalidOperationException e) { System.Console.WriteLine(e.Message); } } }
답변
의 속기입니다 Nullable<int>
. Nullable<T>
값 유형을로 설정하는 데 사용됩니다 null
. 값 유형은 일반적 으로 null 일 수 없습니다 .
답변
에
x ? "yes" : "no"
? if 문장을 선언합니다 . 여기에서 x 는 부울 조건을 나타냅니다. : 앞의 부분 은 then 문장이고 이후 부분은 else 문장입니다.
예를 들어
int?
? nullable 형식을 선언하고 형식이 null 형식 일 수 있음을 의미합니다.
답변
널 입력 가능 유형은 System.Nullable 구조체의 인스턴스입니다. 널 입력 가능 유형은 기본 값 유형의 정상 값 범위와 추가 널 값을 나타낼 수 있습니다 . 예를 들어,
Nullable<Int32>
“Nullable of Int32″로 발음 되는 [ ]에 -2147483648에서 2147483647 사이의 값을 지정하거나 널값을 지정할 수 있습니다. [Nullable<bool>
]에 true 또는 false 또는 null 값을 지정할 수 있습니다. 숫자 및 부울 유형에 널을 지정하는 기능은 값이 지정되지 않은 요소를 포함하는 데이터베이스 및 기타 데이터 유형을 처리 할 때 특히 유용합니다. 예를 들어, 데이터베이스의 부울 필드는 true 또는 false 값을 저장하거나 정의되지 않을 수 있습니다.
답변
유형이 널 입력 가능함을 선언합니다.
답변
실제 사용법 :
public string someFunctionThatMayBeCalledWithNullAndReturnsString(int? value)
{
if (value == null)
{
return "bad value";
}
return someFunctionThatHandlesIntAndReturnsString(value);
}
답변
위의 답변에 추가하려면 다음 코드 샘플이 있습니다.
struct Test
{
int something;
}
struct NullableTest
{
int something;
}
class Example
{
public void Demo()
{
Test t = new Test();
t = null;
NullableTest? t2 = new NullableTest();
t2 = null;
}
}
컴파일 오류가 발생합니다.
오류 12 널이 아닌 값 유형이므로 널을 ‘테스트’로 변환 할 수 없습니다.
NullableTest에 대한 컴파일 오류가 없습니다. (t2 선언에서?를 참고하십시오)
