에 구속되지 않은 제네릭 형식 매개 변수를 전달 나도 방법이 있습니다제한된 방법
public TValueType? DoStuffWithValueType<TValueType>(int x, int y)
where TValueType: struct {}
public TRefType DoStuffWithRefType<TRefType>(int x, int y)
where TRefType: class {}
내가 어떻게 그들을 포장 할 수있는 새로운 세 번째 방법을?
DoStuffWithValueType
를 호출 할 때 내가 T
이 구조체 사실에 컴파일러를 설득 할 수 없기 때문에 컴파일되지 다음
public T DoStuff<T>(int x, int y) {
if(typeof(T).IsValueType)
{
return DoStuffWithValueType<T>(x, y);
}
return DoStuffWithRefType<T>(x, y);
}
이미 DoStuff
과부하했지만,이 시도가 제네릭 제약 조건에 포함되지 않기 때문에 실패 메소드 서명의
나는 또한 제약 조건을 없애려고했지만 그럴 수 없었다.
아이디어가 있으십니까? 고맙습니다!
사전 경고 : 유형이 값 유형이라는 사실이 반드시 그것이 struct 제약 조건에 대한 유효한 제네릭 유형 인수라는 것을 의미하지는 않습니다. Nullable 값 유형은'class' 또는'struct' 제약 조건과 함께 사용할 수 없습니다. – hvd