Итак, я начал без знаний об отражении или динамическом наборе текста, но я многому научился. Однако есть одна вещь, которую я не могу найти: эквивалент «как» для динамического набора.«как» эквивалент с использованием отражения
То, что я пытаюсь сделать, это эквивалент этого (если он будет компилировать):
foreach (Change c in changes)
{
(c.Undo as Action<c._Type, c._Type>).Invoke(
c.OldValue as c._Type, c.NewValue as c._Type);
}
Из того, что я понимаю, что мне нужно сделать что-то вдоль линий
Type constructedClass = typeof(Action<,>).MakeGenericType(c._Type);
, чтобы построить необходимый класс Action, но есть ли способ реализовать as
как для типа Action, так и для c._Type?
Для дальнейшего уточнения, здесь псевдокод (и это мой первый раз пытается сделать такого рода вещи, поэтому, пожалуйста, быть хорошим):
foreach (Object o in objects)
{
(o.SettableMethod as Action<o.TypeOfParameters, o.TypeOfParameters>).Invoke(
o.Parameter1 as TypeOfParameters, o.Parameter2 as TypeOfParameters);
}
Спасибо заранее.
Непонятно, что вы хотите дать пример использования –
Причина немного сложная, но я храню c.Undo (который должен быть Action) как объект, а также его OldValue и NewValue. Я пытаюсь назначить их соответствующие типы. Там есть куча другого кода, и я не знаю, что было бы полезно .... –
benjer3
Просто отправьте образец в псевдокоде того, что вы пытаетесь сделать –