를 예외를 캐스팅 무엇입니까입니까?가 왜이 없습니다 여기 여기
답변
할 수 있습니다. 이것은 컴파일러에게 IC<IA>
변수에 IC<A>
을 할당 할 수 있음을 알립니다.
자세한 내용은 this page을 참조하십시오.
당신은 당신이 캐스트가 작동하려면 interface IC<out T>
로 IC
을 선언 할 필요가
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
interface IPerson
{
}
//Have to declare T as out
interface ICrazy<out T>
{
}
class GTFan : IPerson
{
}
class CrazyOldDude : ICrazy<GTFan>
{
}
class Program
{
static void Main(string[] args) {
IPerson someone;
someone = (IPerson)new GTFan(); // <~~~ No exception here
ICrazy<GTFan> crazyGTFanatic;
ICrazy<IPerson> crazyPerson;
crazyGTFanatic = new CrazyOldDude() as ICrazy<GTFan>;
crazyGTFanatic = (ICrazy<GTFan>)(new CrazyOldDude());
crazyPerson = (ICrazy<IPerson>)crazyGTFanatic;
}
}
}
예, 그렇지만 'ica'를 null로 설정하면 도움이되지 않습니다. 많은. –
@BrianRasmussen 오, 그렇다면 ica가 절대로 null이 아닐 것이라고 말하는 것입니까? 그럼에도 불구하고 내 제안을 사용하면 _is_ null로 정확합니다. – Rake36
예, 캐스트가 유효하지 않으므로 'as'연산자가 null을 반환합니다. –
- 1. 가 어떻게이 dbquery 여기
- 2. "여기"가 무엇을 의미합니까?
- 3. 가 getXMLHTTP 여기 오류
- 4. 가 QLineEdit 여기
- 5. 여기
- 6. 여기
- 7. 여기
- 8. 여기
- 9. 여기
- 10. , 여기
- 11. 여기
- 12. 여기
- 13. 여기
- 14. 여기
- 15. 여기
- 16. 여기
- 17. 여기
- 18. 여기
- 19. 여기
- 20. 여기
- 21. 여기
- 22. 여기
- 23. 여기,
- 24. 여기
- 25. 가 어떻게이 JSON 형식 여기
- 26. 가 extjs라는이 API를 구글하지만 여기
- 27. 가 어떻게 HTTP 요청 여기
- 28. 가 C에서 C#을 ++ 여기
- 29. 수 없습니다 (여기)
- 30. 수 없습니다 여기
C#의 어떤 버전입니까? – Rake36
나는 4.0이라고 생각한다. – Vlad
'CA'는'IC'을 구현하지 않았다. –