컴파일러 오류 CS0315
업데이트: 2007년 11월
오류 메시지
제네릭 형식 또는 메서드 'TypeorMethod<T>'에서 'valueType' 형식을 형식 매개 변수 'T'(으)로 사용할 수 없습니다. 'valueType'에서 'referenceType'(으)로의 boxing 변환이 없습니다.
The type 'valueType' cannot be used as type parameter 'T' in the generic type or method 'TypeorMethod<T>'. There is no boxing conversion from 'valueType' to 'referenceType'.
이 오류는 특정 클래스에 대해 제네릭 형식을 제한하고 클래스에 대해 암시적으로 boxing할 수 없는 값 형식을 사용하여 해당 클래스의 인스턴스를 생성하는 경우 발생합니다.
이 오류를 해결하려면
- 이 오류를 해결하려면 구조체를 클래스로 다시 정의합니다.
예제
다음 예제에서는 CS0315 오류가 발생하는 경우를 보여 줍니다.
// cs0315.cs
public class ClassConstraint { }
public struct ViolateClassConstraint { }
public class Gen<T> where T : ClassConstraint
{
}
public class Test
{
public static int Main()
{
Gen<ViolateClassConstraint> g = new Gen<ViolateClassConstraint>(); //CS0315
return 1;
}
}