Share via


컴파일러 오류 CS0403

업데이트: 2007년 11월

오류 메시지

null을 허용하지 않는 값 형식일 수 있으므로 null을 형식 매개 변수 'name'(으)로 변환할 수 없습니다. 대신 기본값('T')을 사용하십시오.
Cannot convert null to type parameter 'name' because it could be a non-nullable value type. Consider using default('T') instead.

사용자가 지정한 알 수 없는 형식은 null 할당을 허용하지 않는 값 형식일 수도 있으므로 이 형식에 null을 할당할 수 없습니다. 제네릭 클래스에서 값 형식을 사용하지 않으려는 경우 클래스 형식 제약 조건을 사용하십시오. 이 클래스에서 내장 형식과 같은 값 형식을 사용할 수 있는 경우 다음 예제에서와 같이 null 할당을 default(T) 식으로 바꿀 수 있습니다.

예제

다음 샘플에서는 CS0403 오류가 발생하는 경우를 보여 줍니다.

// CS0403.cs
// compile with: /target:library
class C<T>
{
   public void f()
   {
      T t = null;  // CS0403
      T t2 = default(T);   // OK
    }
}

class D<T> where T : class 
{
   public void f()
   {
      T t = null;  // OK
    }
}