首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >定义委托蓝图

定义委托蓝图
EN

Stack Overflow用户
提问于 2015-11-13 16:11:16
回答 1查看 71关注 0票数 2

我正在阅读this的问题,有人回答了这个问题,提出了这样的方法:

代码语言:javascript
复制
public static void Method<T>(Func<int,T> del) {
  var t = del(42);
}

应该是这样使用的:Method<SomeType>(x => new SomeType(x));

Method机构对这个问题并不重要。如果委托/lambda不在该“样式”中,则该方法将无法按预期工作。例如,如果像Method(x => new Foo());一样调用它,它将不会“工作”,因为解决方法的目的将丢失。

其目的是确保T有一个带有int类型的1个参数的构造函数。我希望我能做T(int),所以是否存在确保委托始终为x => new SomeType(x)的情况?还是有别的选择?我查了很多地方,什么都想不出来。

EN

回答 1

Stack Overflow用户

发布于 2015-11-13 16:45:58

你不需要一个小丑来做这件事。只要传入您想要的类型,它就会返回对象,并确保int被传递给它。然后,您基本上只是创建一个工厂方法,它将为您提供所需的类型以及传入的整数。

代码语言:javascript
复制
public T Method<T>(int whatever) where T : class
{
     return (T)Activator.CreateInstance(typeof(T), whatever);
}

var type = Method<SomeType>(55);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33697071

复制
相关文章

相似问题

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