나는 일반적인 사전의에서 작동 C#에서 기능을 가지고 :캐스트 개체
public static string DoStuff<TKey, TValue>(Dictionary<TKey, TValue> dictionary)
{
// ... stuff happens here
}
나는 또한 객체를 통해 루프 기능을 가지고있다. 이러한 객체 중 하나가 Dictionary <> 일 경우 해당 일반 함수로 전달해야합니다. 그러나 키 또는 값의 유형이 컴파일 타임에 무엇인지 알 수 없습니다.
foreach (object o in Values)
{
if (/*o is Dictionary<??,??>*/)
{
var dictionary = /* cast o to some sort of Dictionary<> */;
DoStuff(dictionary);
}
}
어떻게해야합니까? 당신이 Value
모음의 모든 사전이 동일한 지 알고 있다면
가 대신 IDictionary를 사용할 수 있습니다
이 또는 당신이 반사를 사용할 수 있습니다 ? –
http://stackoverflow.com/questions/123181/testing-if-an-object-is-a-dictionary-in-c-sharp 가능한 중복 – itsme86
사용하려면 DoStuff 함수를 다시 작성해야하지 않습니까? IDictionary 유형? 그것은 실제로 선택 사항이 아닙니다. – Ryan