다음을 통해 공유


제네릭 코드의 default 키워드(C# 프로그래밍 가이드)

업데이트: 2007년 11월

제네릭 클래스 및 메서드에서 다음과 같은 내용을 미리 알지 못하는 경우 매개 변수화된 형식 T에 기본값을 할당하는 방법에 대한 문제가 발생합니다.

  • T가 참조 형식인지 값 형식인지 여부

  • T가 값 형식인 경우 숫자 값인지 구조체인지 여부

t가 매개 변수화된 형식 T의 변수인 경우 "t = null"과 같은 구문은 T가 참조 형식인 경우에만 유효하고 "t = 0"은 구조체가 아닌 숫자 값 형식인 경우에만 사용할 수 있습니다. 참조 형식에 대해서는 null을 반환하고 숫자 값 형식에는 0을 반환하는 default 키워드를 사용하면 이 문제를 해결할 수 있습니다. 구조체에 대해서는 멤버가 값 형식인지 참조 형식인지 여부에 따라 0 또는 null로 초기화된 구조체의 각 멤버가 반환됩니다. GenericList<T> 클래스에 있는 다음 예제에서는 default 키워드를 사용하는 방법을 보여 줍니다. 자세한 내용은 제네릭 개요를 참조하십시오.

public class GenericList<T>
{
    private class Node
    {
        //...

        public Node Next;
        public T Data;
    }

    private Node head;

    //...

    public T GetNext()
    {
        T temp = default(T);

        Node current = head;
        if (current != null)
        {
            temp = current.Data;
            current = current.Next;
        }
        return temp;
    }
}

참고 항목

개념

C# 프로그래밍 가이드

참조

제네릭(C# 프로그래밍 가이드)

제네릭 메서드(C# 프로그래밍 가이드)

System.Collections.Generic

기타 리소스

.NET Framework의 제네릭