컴파일러 오류 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>>> { }
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET 피드백
.NET은(는) 오픈 소스 프로젝트입니다. 다음 링크를 선택하여 피드백을 제공해 주세요.