이것은 초보자 질문 일 가능성이 있지만 Google은 놀랍게도 답변을 제공하지 않았습니다.
이 인공적인 방법이 있습니다
T HowToCast<T>(T t)
{
if (typeof(T) == typeof(string))
{
T newT1 = "some text";
T newT2 = (string)t;
}
return t;
}
C ++ 배경에서 오는 것은 이것이 효과가 있다고 예상했습니다. 그러나 위의 두 가지 할당 모두에 대해 " 'T'유형을 문자열로 암시 적으로 변환 할 수 없음"및 " 'T'유형을 문자열로 변환 할 수 없음"으로 컴파일되지 않습니다.
개념적으로 잘못된 일을하거나 구문이 잘못되었습니다. 이걸 정리해주세요.
감사합니다!
typeof(T) == typeof(string)
컴파일 타임이 아니라 런타임에 해결됩니다. 따라서 블록의 다음 줄은 유효하지 않습니다.