首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将Action<T>转换为Action<object>

将Action<T>转换为Action<object>
EN

Stack Overflow用户
提问于 2010-08-10 05:11:41
回答 5查看 12.8K关注 0票数 27

我被卡住了。

如何在C#中转换Action<T> to an Action<Object>

关于Magnus

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-08-10 05:36:29

以下是您所要求的示例(可以在最后一行添加类型检查,以正确处理无效的强制转换异常,以使用户更友好):

代码语言:javascript
复制
public Action<object> Convert<T>(Action<T> myActionT)
{
    if (myActionT == null) return null;
    else return new Action<object>(o => myActionT((T)o));
}

也许你可以给出更多关于这项任务的细节,因为现在它看起来有点奇怪。

票数 62
EN

Stack Overflow用户

发布于 2021-03-19 22:10:34

您可以像这样添加泛型参数

代码语言:javascript
复制
    Action<object> Function<T>(Action<T> act) where T : class
    {
        return (Action<object>)act;
    }
票数 3
EN

Stack Overflow用户

发布于 2010-08-10 05:18:56

我假设你有这样的东西:

代码语言:javascript
复制
void Foo(Action<object> action) { }

Action<something> myaction;

想要转换我的myaction,这样你就可以把它传递给Foo了。

这不管用。

Foo可以将任何对象传递给其类型从object派生的操作。但是myaction只接受从某些东西派生的对象。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3444246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档