也许我只是没有正确阅读MSDN文档,但是如果函数接受一个字符串参数并返回类型T,那么如何使用Func()将其指定为共享函数?
MSDN说Func(Of In T1, Out TResult)
,但他们的所有示例都使用相同的数据类型,即Func(Of String, String)
。我想做Func(Of In String, Out T)
,其中T是任意的(但我可以在必要时通过基类约束它)。我想在类级别共享/静态,但封装类本身不是泛型类。在这个特定的场景中,似乎不可能做我想要的,因为编译器无法知道T类在运行时是什么。
那么在VB.net中代理或匿名lambda表达式可以做泛型(而不是C#)吗?
答案 0 :(得分:2)
目前尚不清楚你究竟要做什么。您当然可以在泛型方法或类型中使用泛型委托类型。作为一个简单的例子:
public T Convert<T>(Func<string, T> converter, string text)
{
return converter(text);
}
但是,如果没有T
作为类型参数本身(在泛型方法或类型中指定),则无法执行此操作。