我正在尝试在WindowsPhone应用程序中使用Silverlight应用程序中的一些代码。但是我有一个问题用其他东西替换动态关键字,所以我的代码仍然编译和工作。 我有一个动态对象列表
private readonly List<dynamic> _awaitingActionsList = new List<dynamic>();
此列表用于存储此签名的代表
Action<T> where T: class
在我班级的其他部分,我使用此代码调用代理
foreach (var action in _awaitingActionsList)
{
InvokeAction(action)
}
InvokeAction函数如下所示
public void InvokeAction<T>(Action<T> action)
{
action.Invoke(someObject);
}
感谢动态关键字,这段代码在Silverlight上运行良好,但WindowsPhone中没有动态关键字,所以我想知道如何替换它。我不想更改函数InvokeAction的签名,因为感谢使用泛型和Action我可以将委托传递给这样的函数:
InvokeAction<SomeType>(val => val.DoStuff(param));
答案 0 :(得分:0)
您可以使用List<Delegate>
并调用DynamicInvoke
方法。
速度很慢,但dynamic
也很慢
(我不知道哪个更慢)