object
객체를 가지고 있는데, GetType()
을 호출하면 HashSet<Availability>
유형을 반환하지만 반환합니다. 다른 경우에 HashSet<Contact>
의 비 관련 유형 또는 아직 알려지지 않은 임의의 수인 HashSet<...>
유형. 다운 캐스팅 객체에 컬렉션의 제네릭 형식하면 코드가 된 직후 알 필요가 없도록하면서C#에서는 객체 유형을 일반 "객체"컬렉션 유형으로 상속 할 수 있습니까?
object myObject = getMyObject();
myObject.GetType() // = HashSet<Availability>
나는 (HashSet의 또는 다른) 어떤 종류의 컬렉션에 개체를 캐스팅하고 싶습니다 아직 컴파일 타임에 알 수없는 유형.
object myObject = getMyObject();
myObject.GetType() // = HashSet<Availability>
var myUsefulObject = (HashSet<object>)myObject;
"시도 할 수 없습니다 ..."예외가 발생했습니다.
이것이 가능합니까? 그렇다면 어떻게?
나는 내가 가지고있는 HashSet의 유형과 내가 원하는 일 사이의 공분산을 생각하지만, 내 초기 타입은 객체이기 때문에 나는 this stack-overflow answer suggests 무엇을 드릴 수 없습니다.
* 가능합니까? * - 아니요. 이것은 모두 꿈입니다. 컴파일러는 실제로 당신에게 공분산에 대한 당신의 믿음이 틀렸다고 말하지 않고, 당신이하고있는 일이 근본적으로 당신이 링크 한 대답과 근본적으로 다르다는 것을 부인합니다. –
보세요,'HashSet'를'HashSet
또한, 왜 * 왜 * 이것을하고 싶습니까? 최종 목표는 무엇입니까? –