使用 typeof(Expression<Func<,>>) 的 C# 编译器错误
C# Compiler Error using typeof(Expression<Func<,>>)
标题基本上说明了一切。我正在实现一些分析表达式并在这里和那里使用反射的逻辑。为了检索以 Expression<Func<T, S>>
作为参数的特定泛型方法的重载,我使用 typeof
运算符来获取此参数的正确开放泛型类型:
typeof(Expression<Func<,>>)
据我了解,使用 typeof
运算符可用于获取开放泛型类型。然而,在这种情况下,编译器抱怨它错过了来自 Func<,>
委托的类型信息:
Type expected
这是规范吗?如果是这样,如何在这里获得正确的类型?我正在使用 Visual Studio 2013 更新 4 / C# 5.
使用 typeof
,您可以获得有关开放泛型类型或封闭类型的类型信息。您不能将 typeof
与两者混合使用。
Expression<>
是开放类型,但指定 Func<,>
类型参数会尝试引用封闭类型,这就是编译器希望您指定 Func<,>
类型参数的原因还有。
就用typeof(Expression<>)
,这就是你需要的开放式
标题基本上说明了一切。我正在实现一些分析表达式并在这里和那里使用反射的逻辑。为了检索以 Expression<Func<T, S>>
作为参数的特定泛型方法的重载,我使用 typeof
运算符来获取此参数的正确开放泛型类型:
typeof(Expression<Func<,>>)
据我了解,使用 typeof
运算符可用于获取开放泛型类型。然而,在这种情况下,编译器抱怨它错过了来自 Func<,>
委托的类型信息:
Type expected
这是规范吗?如果是这样,如何在这里获得正确的类型?我正在使用 Visual Studio 2013 更新 4 / C# 5.
使用 typeof
,您可以获得有关开放泛型类型或封闭类型的类型信息。您不能将 typeof
与两者混合使用。
Expression<>
是开放类型,但指定 Func<,>
类型参数会尝试引用封闭类型,这就是编译器希望您指定 Func<,>
类型参数的原因还有。
就用typeof(Expression<>)
,这就是你需要的开放式