如何在WindowsPhone中替换动态关键字

本文关键字:替换 动态 关键字 WindowsPhone | 更新日期: 2023-09-27 18:28:15

我正试图在WindowsPhone应用程序中使用Silverlight应用程序中的一些代码。然而,我在用其他东西替换dynamic关键字时遇到了问题,因此我的代码仍然可以编译和工作。我有一个动态对象的列表

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);
}

多亏了dynamic关键字,这段代码在Silverlight上运行得很好,但WindowsPhone中不存在dynamic关键字。所以我想知道如何替换它。我不想更改函数InvokeAction的签名,因为多亏了使用泛型和Action,我可以将委托传递给这样的函数:

InvokeAction<SomeType>(val => val.DoStuff(param));

如何在WindowsPhone中替换动态关键字

您可以使用List<Delegate>并调用DynamicInvoke方法。

它会很慢,但dynamic也很慢
(我不知道哪个慢)