ShovelingLife
A Game Programmer
ShovelingLife
전체 방문자
오늘
어제
  • 분류 전체보기 (1074) N
    • 그래픽스 (57)
      • 공통 (19)
      • 수학 물리 (22)
      • OpenGL & Vulkan (1)
      • DirectX (14)
    • 게임엔진 (183)
      • Unreal (69)
      • Unity (103)
      • Cocos2D-X (3)
      • 개인 플젝 (8)
    • 코딩테스트 (221)
      • 공통 (7)
      • 프로그래머스 (22)
      • 백준 (162)
      • LeetCode (19)
      • HackerRank (2)
      • 코딩테스트 알고리즘 (8)
    • CS (235)
      • 공통 (21)
      • 네트워크 (44)
      • OS & 하드웨어 (55)
      • 자료구조 & 알고리즘 (98)
      • 디자인패턴 (6)
      • UML (4)
      • 데이터베이스 (7)
    • 프로그래밍 언어 (349) N
      • C++ (168) N
      • C# (90)
      • Java (9)
      • Python (33)
      • SQL (30)
      • JavaScript (8)
      • React (7)
    • 그 외 (10) N
      • Math (5)
      • 일상 (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • Source Code 좌측 상단에 복사 버튼 추가 완료
  • 언리얼 엔진 C++ 빌드시간 단축 꿀팁
  • 게임 업계 코딩테스트 관련
  • 1인칭 시점으로 써내려가는 글들

인기 글

태그

  • string
  • 클래스
  • 프로그래머스
  • C
  • 언리얼
  • 백준
  • 유니티
  • 알고리즘
  • 포인터
  • 티스토리챌린지
  • C++
  • 파이썬
  • c#
  • Unity
  • 그래픽스
  • 문자열
  • 함수
  • 배열
  • SQL
  • 오블완

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
ShovelingLife

A Game Programmer

[C#] 제네릭 메서드(Generic Method) 널(Null) 반환 방법
프로그래밍 언어/C#

[C#] 제네릭 메서드(Generic Method) 널(Null) 반환 방법

2023. 8. 23. 10:35

매개변수가 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#]제네릭 메서드(Generic Method) 널(Null) 반환 방법 (tistory.com)

저작자표시 (새창열림)

'프로그래밍 언어 > 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
    '프로그래밍 언어/C#' 카테고리의 다른 글
    • [C#] event (이벤트) 개념
    • [C#] default와 new() 제약조건 사용하기
    • [C#] 자료형(Data Type)의 기본 값(default) 연산자
    • [C#] 리플렉션 (Reflection) 예시
    ShovelingLife
    ShovelingLife
    Main skill stack => Unity C# / Unreal C++ Studying Front / BackEnd, Java Python

    티스토리툴바