명시 적으로 제네릭 매개 변수 형식을 제공해야하는 이유 컴파일러에서 형식을 유추해야하는 이유는 무엇입니까?명시 적으로 제네릭 매개 변수 형식을 제공해야하는 이유 컴파일러에서 형식을 유추해야하는 이유는 무엇입니까?
public static T2 Cast<T1,T2>(this T1 arg) where T2 : class where T1 : class
{
return arg as T2;
}
샘플 사용법 : 더 지능적인 컴파일러 내 원하는 용도에 비해
objOfTypeT2 = objOfTypeT1.Cast<TypeT1,TypeT2>();
:
objOfTypeT2 = objOfTypeT1.Cast<TypeT2>();
또는 어쩌면 내가해야 더 지능 :-)
주의 사항 : 반환 유형. 나는 함수를 호출 한 객체를 제공하지 않으려합니다. 메서드는 확장 메서드입니다.
함으로써 : 예를 들어, 코드 허용에 쓸 수 있을까? –
왜 그냥 public static T를 만들지 않는가? (이 객체 값) {return value to T;}? –
Rauhotz
@Rauhotz 당신이 언급 한 것을 가지고 있었는데, 호기심과 또 다른 과부하를 찾아 내서 값 유형을 사용할 수있게 만들었습니다. 왜냐하면 제네릭 제약으로 과부하를 만들 수 없기 때문입니다. –