영어로 읽기

다음을 통해 공유


컴파일러 오류 CS0453

제네릭 형식 또는 메서드 'Generic Identifier'에서 'Type Name' 형식을 'Parameter Name' 매개 변수로 사용하려면 해당 형식이 null을 허용하지 않는 값 형식이어야 합니다.

이 오류는 value 제약 조건이 있는 제네릭 형식 또는 메서드를 인스턴스화할 때 값이 아닌 형식 인수를 사용하는 경우에 발생합니다. nullable 값 형식 인수를 사용하는 경우에도 발생할 수 있습니다. 다음 예제에서 마지막 두 줄의 코드를 참조하세요.

예시

다음 코드에서는 이 오류를 생성합니다.

C#
// CS0453.cs  
using System;  
public class HV<S> where S : struct { }

// CS0453: string is not a value type
public class H1 : HV<string> { }

// CS0453: H1 is a class, not a struct
public class H2 : HV<H1> { }

// CS0453: HV is based on a class, not a struct
public class H3<S> : HV<S> where S : class { }
public class H4<S> : HV<S> where S : struct { } // OK

// CS0453: HV accepts a nullable int type
public class H4 : HV<int?> { }

// CS0453: HV is based on Nullable type of int
public class H5 : HV<Nullable<Nullable<int>>> { }

참고 항목