Получение типа параметра из общих функций делегирования

#c# #generics #types #delegates #type-conversion

#c# #общие #типы #делегаты #преобразование типа

Вопрос:

У меня есть список общих делегатов в словаре, заглушку делегата см. Ниже.

 public delegate TType Condition<T, TType>(T obj);
 

У меня есть объект, который я получаю из другого словаря. Мне нужно привести объект к правильному типу для делегата. Cond — это текущая функция делегирования, которая была определена в другой dll. Есть какие-нибудь предложения или, может быть, другой возможный способ сделать это? Спасибо!

 foreach (var cond in _conditionDict[key])
            {
                try
                {
                    Object obj = board[key] ;

                    Type objectType = obj.GetType();


                    if (objectType == condType)// need to find the condition type
                    {
                        Convert.ChangeType(obj, condType);//need to get condition typpe

                    }

                }
 

Ответ №1:

Если вы хотите получить тип «T» из экземпляра вашего делегата, используйте этот вызов:

 obj.GetType().GetGenericArguments().First();