러시아어를 사용하여 C#에 코드를 씁니다. 반면 InvalidCastException이C#의 기본 캐스트 목록 별칭
0
A
답변
2
Список<T>
에 SS 객체는 List<T>
이다. 반대가 사실이 아닙니다. List<T>
은 목록에서 파생 된 사용자 정의 클래스가 아닙니다. 따라서 List<T>
의 인스턴스를이 클래스에서 파생 된 일부 클래스로 캐스팅 할 수 없습니다.
// which is odd, because ToList() already exists
public static List<T> ToList<T>(this IEnumerable<T> source)
{
return source.ToList();
}
또는 파생 클래스의 새로운 인스턴스를 생성하고 반환 :
그래서, 당신이 중 하나는 확장 메서드의 반환 형식을 변경해야합니다
public static Список<T> ПривестиКСписку<T>(this IEnumerable<T> source)
{
var список = new Список<T>();
список.AddRange(source);
return список;
}
참고! 러시아어를 사용하지 마십시오. 러시아어를 모르는 사람들에게는 obfuscation처럼 보이며, 코드를 입력 할 때 입력 언어를 전환하는 것은 정말 고통 스럽습니다.
+1
다른 해결책이 없으면 감사합니다. – Sergey
0
당신이 캐스팅 할 필요가 없습니다 - 나는이 별칭
public static class Расширение
{
public static Список<T> ПривестиКСписку<T>(this IEnumerable<T> source)
{
return (Список<T>)(source.ToList());
}
}
그러나 캐스팅 작동하지에 IEnumerable을 캐스팅 목록
public class Список<T> : List<T>
{
}
및 확장 방법에 대한 별칭 클래스를 생성 제네릭과 함께 작업
public class Список<T> : List<T>
{
}
public static class Расширение
{
public static List<T> ПривестиКСписку<T>(this IEnumerable<T> source)
{
return source.ToList();
}
}
0
기본 cla를 캐스팅 할 수 없습니다. 자식 클래스
public static class Расширение
{
public static Список<T> ПривестиКСписку<T>(this IEnumerable<T> source)
{
Список<T> list = new Список<T>();
list.AddRange(source);
return list;
}
}
관련 문제
- 1. 따옴표 리터럴의 기본 별칭
- 2. 세분화 오류, C의 목록
- 3. C의 segfault의 목록 여기
- 4. C의 연결된 목록
- 5. C의 구조 및 목록
- 6. 목적 C의 직렬화 목록
- 7. C의 localhost에서 UDP 브로드 캐스트 수신을 피하십시오.
- 8. 캐스트 무효 C의 uint64_t 배열에 대한 포인터
- 9. C의 기본 포인터?
- 10. C의 기본 인수 값
- 11. C의 기본 함수
- 12. C의 기본 인터페이스
- 13. Ruby 클래스 메서드 별칭 목록
- 14. SQL의 값 목록 별칭 방법
- 15. 기본 유형 다운 캐스트
- 16. 언어 기본 페이지의 URL 별칭
- 17. Python에서 빠른 기본 별칭 찾기
- 18. sed를 사용하여 .bashrc 파일의 별칭 목록 끝에 별칭 추가
- 19. 딥 클론 c의 개체 목록
- 20. C의 연결된 목록 표시 내용
- 21. malloc 함수가없는 C의 연결된 목록
- 22. 문자열 C의 벡터에서 프리미티브 목록
- 23. C의 연결된 목록 빠른 부분
- 24. C의 함수를 가리키는 연결된 목록
- 25. C의 목록 유지 관리 문제
- 26. C의 기존 목록에 목록 추가
- 27. c의 연결된 목록의 하위 목록?
- 28. C의 링크 된 목록 프로그램
- 29. C의 연결된 목록 세그멘테이션 오류
- 30. 캐스트 목록 알 수없는 유형
반환 유형은 List이어야하며 IEnumerable을 List로 반환하기 전에 캐스트 할 필요가 없습니다. –
클래스 이름에 그리스 문자가 포함되어 있습니까? –
@ SonerGönül 러시아어, 실제로 :) –