在.NET中,似乎有两种方法可以将类型传递给方法或类。第一种是通过泛型,在其中我们将类型作为特殊参数传递。
例如:
另一种方法是明确使用
例如:
var list = new List<MyClass>();
另一种方法是明确使用
typeof
运算符,例如:var pe = Expression.ParameterExpression(typeof(MyClass), "myinstance");
我的问题与需要类型参数的方法的统一接口不一致有关。为什么不能按照以下方式完成上述语句:
var pe = Expression.ParameterExpression<MyClass>("myinstance");
是因为编译器在处理泛型参数时需要两个语义上的不同吗?当编译器处理一个泛型参数时,它是否只是执行lambda演算中的替换操作?而typeof样式的方法需要一个实际的Type类实例来推断属性和属性?
谢谢。