所以我開始時沒有關於反射或動態打字的知識,但我學到了很多東西。但是,有一件事我找不到:動態類型的「as」等價物。「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類,但是有沒有一種方法可以爲Action類型和c._Type實現as
?
爲了進一步澄清,這裏是僞代碼(這是我第一次嘗試做這樣的事情,所以請很好):提前
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
只需在僞代碼中發佈一個樣本,您正在嘗試做什麼 –