我有以下代码在我的C#泛型函数中产生编译问题:
static void solve () {
int[] vals = RA<int>();
}
Run Code Online (Sandbox Code Playgroud)
和我的RA功能:
static T[] RA<T> () {
return Console.ReadLine ().Split ().Select (v => T.Parse (v)).ToArray ();
}
Run Code Online (Sandbox Code Playgroud)
给我以下错误:
Espression denotes a 'type parameter',
where a 'variable', 'value' or 'type' was expected
Run Code Online (Sandbox Code Playgroud)
社区可以协助我调试或理解这个问题并解决它吗?
你必须重新考虑这个 - 你不能在类型参数上调用静态方法.首先,编译器无法在编译时解析它们.有关详细信息,请参阅Eric Lippert的博客文章.
您可能希望将其更改为:
static T[] RA<T>(Func<string, T> projection)
{
return RL().Split().Select(projection).ToArray();
}
Run Code Online (Sandbox Code Playgroud)