【发布时间】:2014-05-23 13:22:48
【问题描述】:
我想使用Reflection 确定参数是否具有this 修饰符。我查看了ParameterInfo 类的属性,但找不到任何有用的东西。我知道扩展方法 em> 只是语法糖,但我相信应该有一种方法来确定方法是否是扩展方法。
扩展方法与其他静态方法(在 static、public 类中定义)的唯一区别是this 修饰符。
例如这不是扩展方法:
public static int Square(int x) { return x * x; }
但这是:
public static int Square(this int x) { return x * x; }
那么,如果可能的话,我如何区分使用Reflection 或其他方法的两种方法?
【问题讨论】:
-
在每种支持它们的语言中,扩展方法都有两个方面:调用(编译时反射)和声明(源代码)。请参阅相关规范。 [C# 5.0 第 7.6.5.2 节扩展方法调用,第 10.6.9 节扩展方法。)
标签: c# reflection extension-methods