所以我一开始对反射或动态类型一无所知,但我学到了很多。但是,我找不到一件事:动态类型的“as”等价物。
我正在尝试做的是相当于这个(如果它会编译):
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);
}
提前致谢。