我被卡住了。
如何在C#中转换Action<T> to an Action<Object>
?
关于Magnus
发布于 2010-08-10 05:36:29
以下是您所要求的示例(可以在最后一行添加类型检查,以正确处理无效的强制转换异常,以使用户更友好):
public Action<object> Convert<T>(Action<T> myActionT)
{
if (myActionT == null) return null;
else return new Action<object>(o => myActionT((T)o));
}
也许你可以给出更多关于这项任务的细节,因为现在它看起来有点奇怪。
发布于 2021-03-19 22:10:34
您可以像这样添加泛型参数
Action<object> Function<T>(Action<T> act) where T : class
{
return (Action<object>)act;
}
发布于 2010-08-10 05:18:56
我假设你有这样的东西:
void Foo(Action<object> action) { }
Action<something> myaction;
想要转换我的myaction,这样你就可以把它传递给Foo了。
这不管用。
Foo可以将任何对象传递给其类型从object派生的操作。但是myaction只接受从某些东西派生的对象。
https://stackoverflow.com/questions/3444246
复制相似问题