我喜欢将泛型类型转换器函数发送给一个方法,但我不知道该怎么做。
这是解释我想要实现的目标的无效语法,问题是我不知道如何将泛型类型与我的函数一起指定:
public void SomeUtility(Func<T><object,T> converter)
{
var myType = converter<MyType>("foo");
}
编辑(另见我在与劳伦斯的评论中的讨论):通过“通用类型转换器”,我的意思是我想传递一个可以转换为任何强类型 <T> (不是对象)的转换器,所以我的下一行方法可以是:
var myOtherType = converter<MyOtherType>("foo");
我喜欢作为参数传递的委托看起来像这样:
private delegate TOutput myConverterDelegate<TOutput>(object objectToConvert);
现在这更像是一种语法/ C# 探索,为了完成任务,我可能会使用接口来代替,但我确实希望这可以通过 func/delegate 来完成。