매개변수가 null이 아니면, 매개변수의 값을 반환하고 매개변수의 값이 null이면, null을 반환하는 코드다.
T ReturnValue<T>(T val)
{
if (val != null)
{
return val;
}
else
{
return null;
}
}
하지만, return null; 코드에서 에러가 발생한다
C#에서 null이 올 수 있는 데이터 타입이 있고 불가능한 데이터 타입이 존재한다. 기본적으로 숫자형 타입들은 Nullable 연산자를 사용하지 않으면, null값을 할당할 수 없다. 즉, 제네릭 타입은 null이 가능한 타입도 있고 불가능한 타입이 있으므로 null을 반환할 수 없다. 만약, 제네릭 메서드에서 null을 반환하고 싶은 경우 default(T)를 사용한다.
T ReturnValue<T>(T val)
{
if (val != null)
{
return val;
}
else
{
return default(T);
}
}
Console.WriteLine(ReturnValue<string>(null) == null); // True
위 코드를 실행하면, 매개변수의 값이 null이므로 Console에서 True를 출력한다.
defualt()는 C#에서 타입의 기본 값을 반환하는 메서드다.
bool형은 false, 숫자형은 0, 참조형식은 null을 반환한다.
int num = default(int);
Console.WriteLine(num); // 0
다음과 같이 숫자형 타입인 int형을 Nullable 타입으로 정의하여 null값을 할당한다.
T ReturnValue<T>(T val)
{
if (val != null)
{
return val;
}
else
{
return default(T);
}
}
int? num;
num = null;
Console.WriteLine(ReturnValue(num) == null); // True
'프로그래밍 언어 > C#' 카테고리의 다른 글
[C#] event (이벤트) 개념 (0) | 2023.09.18 |
---|---|
[C#] default와 new() 제약조건 사용하기 (0) | 2023.08.23 |
[C#] 자료형(Data Type)의 기본 값(default) 연산자 (0) | 2023.08.23 |
[C#] 리플렉션 (Reflection) 예시 (0) | 2023.08.23 |
[C#] var 키워드 (0) | 2023.08.11 |