컴파일러 오류 CS1763

문자열이 아닌 참조 형식의 기본 매개 변수 값은 null로만 초기화할 수 있습니다.

다음 샘플에서는 CS1763 오류가 발생합니다.

// CS1763.cs (0,0)
class Program
{
    public void Goo<T, U>(T t = default(U)) where U : T
    {
    }
    static void Main(string[] args)
    {
        
    }
}

이 예제에서는 CS1763이 생성됩니다. U가 기본 클래스 T에서 파생된다는 제약 조건에도 불구하고 매개 변수 유형이 T일 때 Goo<T,U> 매개 변수가 기본값 default(U)로 선언되기 때문입니다.

이 오류를 해결하려면

해당 형식 인수를 사용하도록 default(U)를 변경하면 이 오류가 수정됩니다.

    public void Goo<T, U>(T t = default(T)) where U : T
    {
    }