2010-03-16 5 views

답변

8

아니요, 아무 것도 열거하지 않습니다. argument 실제로 T[] 일 경우 성공하거나, 그렇지 않은 경우 InvalidCastException 예외를 throw합니다. argument이 null 인 경우 null을 반환합니다.

+0

이것에 대해 아무 말도하지 않아도 좋지 않은 디자인일까요? 호출자가 목록을 변경할 수 있고 왜 메서드가 배열을 가져 가지 않았습니까? – Steven

4

argument이 배열 (T 유형)에 대한 참조 인 경우에는 열거 형이 없습니다. 이는 간단한 형 변환입니다.

argumentList<T> 또는 IList를 구현하는 다른 클래스에 대한 참조 인 경우 잠재적으로 캐스팅 예외가 발생할 수 있습니다. (T[]으로의 암시 또는 전환 변환이있을 수 있으므로 가능성이 거의 없습니다.)

편집 : Jon이 지적한대로 일반 메서드에서는 변환이 수행되지 않으므로 위의 괄호가 잘못되었습니다.

+2

변환 *이 * 존재하더라도 컴파일러가 컴파일 할 때 컴파일러에서 알지 못하기 때문에 사용되지 않습니다. –

+0

@ 존 : 내가 따를 지 모르겠다 - 나는 단지 명시적인 변환으로 테스트를 마쳤다. 편집 : 나는 그것을 다시 (내 테스트에서 실수) 가져 가라. 당신은 정말로 옳습니다. –