그래서 다음과 같은 "문제"가 발생했으며 그 이유에 대해 궁금합니다.명시 적 캐스트 연산자와 T와 마찬가지로
는 다음과 같은 고려 :
public class B
{
}
public class A<T>
{
private void AFunc(T t)
{
FuncRequireB((B)t); // Not allowed
FuncRequireB(t as B); // Allowed
}
private void FuncRequireB(B b)
{
}
}
나는 우아한 해결책 클래스에서 B로 T를 정의하는 것을 알고,하지만 난 이유 "B로 t" "(B) t"를 알고 싶습니다 이 경우 다른. 나는 "as"가 안전하다는 것을 알고 있으므로 convert가 수행 될 수 없다면 null만을 생성 할 수 있고, 반면에 변환이 성공적이지 않은 경우 명시 적 형변환은 예외를 throw하지만 컴파일러는 왜 이것을 신경 써야할까요? 나는이 경우 그들 사이에 아무런 차이가 없음을 안다.
미리 감사드립니다.
[C# Generics 소개] (http://msdn.microsoft.com/en-us/library/ms379564%28v=vs.80%29.aspx) – MethodMan
'T'를 사용하면 모든 것이 더 좋지만 그 다음에는 다시, 나는 영국 출신이다. –