나는 이것에 대한 연구를 조금 해봤지만 불가능한 것처럼 보이지만 그 중 아무 것도 내 문제와 관련이 없다. 현재 Stack<object>
을 가지고 여러 유형의 객체를 푸시합니다. 내가 그들을 밀어 넣기 전에 상자에 넣어 object
. 그래서 그것을 받아 들인다. 개체를 원래 unboxed 형식으로 자동 언 박싱 할 수있는 방법이 있습니까?개체의 자동 언 박싱
답변
Automagic 방법이 없습니다.
당신은 올바른 유형으로 캐스트 특정 유형의 개체 만이 얻을 수있는 확장 메서드OfType<OneOfTheTypes>()
를 사용할 수있는이 비록에게
var objT = (T)Convert.ChangeType(obj, typeof(T));
var tuple = new Tuple<object, Type>(someObject, typeof(someObject));
stack.Push(tuple);
'T'가 알려지지 않았습니다. – jduncanator
@jduncanator'Tuple'을'Stack' instaed에 넣고 싶을 수도 있습니다. 'Stack
이걸 생각하고 있었지만 가정하기 전에 물어볼 것이라고 생각했습니다. 일반적인 방법이 도움이 될까요? – jduncanator
을 시도합니다.
오브젝트가 가지고있는 런타임 유형과 호환되는 유형의 컴파일 시간 유형을 사용하여 오브젝트를 변수로 자동 변환 할 수 없습니다.
변수 유형은 컴파일 타임 유형이고 컴파일 타임에 내용을 컴파일러가 해당 유형으로 알 수없는 경우입니다. 컴파일러는 스택의 각 객체에 실제로 어떤 런타임 유형이 있는지 알지 못합니다. 런타임 유형이 실제로 컴파일 시간 유형과 일치한다는 컴파일러 (캐스트 포함)에 대한 약속을해야합니다.
하지만 솔직히 말해서. 이런 종류의 "내가 갖고있는 유형을 확인하십시오"는 나쁜 디자인의 전형적인 냄새입니다. 유사한 유형의 객체가 있거나 다른 종류의 객체에 대해 다른 종류의 저장소를 사용하는 경우 공통 기본 클래스로 코드를 디자인하십시오.
그것은 플래시 바이트 코드 파서 (flash ByteCode parser)이다. 나는 그들의 특성을 읽을 수 있도록 갑자기 튀어 나와서 원래의 유형으로 그들을 얻을 수 있어야합니다. – jduncanator
- 1. 일반 유형 캐스팅/언 박싱
- 2. 알 수없는 유형으로 언 박싱
- 3. ASM Java 라이브러리를 사용하여 언 박싱
- 4. 권투 및 언 박싱 : 언제 시작됩니까?
- 5. var-arg에 래퍼 클래스 언 박싱
- 6. Java : 정수를 언 박싱 할 때 널 포인터 예외가 발생합니까?
- 7. C# - 권투/언 박싱/typecasting ints 문제. 이해가 안되요
- 8. 자동 언 박싱은 다음 코드에서
- 9. 샌드 박싱 코어 WLAN?
- 10. 박싱 네이티브 C++ 포인터
- 11. C#에서 형식화 된 변수에 대한 포인터 : 인터페이스, 일반 개체 또는 클래스? (복싱/언 박싱)
- 12. 언 마샬링에서 JAXB 기능
- 13. 목표 -C에서 NSBundle 샌드 박싱
- 14. 샌드 박싱 자바 스크립트 키워드
- 15. 웹 서버에 업로드 영역 샌드 박싱
- 16. 문자 값을 오토 박싱 다음 빈 값
- 17. WinAPI 후크를 사용하여 프로그램 샌드 박싱
- 18. 자바에서 오토 박싱 대 수동 복싱
- 19. Akka 액터의 샌드 박싱 및 모니터링
- 20. Mac 샌드 박싱 및 임시 파일
- 21. "문자열 박싱"이란 무엇이며 왜 그렇게 나쁜가요?
- 22. 루아 샌드 박싱 - 기능 생성 제거
- 23. 다른 언 바운드 보고서에 언 바운드 서브 보고서를 만드는 방법
- 24. 오류 언 바운드 접두사
- 25. 언 바운드 데이터 그리드보기
- 26. 함수를 언 패킹
- 27. 확인 엔디 언 프로그래밍
- 28. 언 바운드 그리드 .net
- 29. 파이썬 언 이스케이프 URL
- 30. 프로그래밍 언어의 엔디 언
"자동"이란 무엇을 의미합니까? 코드가 없으면? 나는 그것이 불가능하다고 생각한다. –
내 말은, 이런 식으로 ...'(thingy.GetType()) thingy' – jduncanator
'thingy'의 'thingy' 타입은 object이므로,'Object'를' Object' – Mayank