#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();