方法变量是什么?在C#中

时间:2016-02-08 03:09:25

标签: c# variables methods

我使用C#。

当我在下面定义Hoge方法时,

void Hoge(bool isBar){}

我得到如下的Hoge方法

var methodName = this.Hoge as Action<bool>).Method.Name;

但是,我无法理解this.Hoge输入的内容。 因为,它可以分配和转换。

但是,它不能直接给我方法名称。 this.Hoge.Method.Name;

而且,它也是错误的。 typeof(this.Hoge)

究竟什么是方法变量?

1 个答案:

答案 0 :(得分:1)

您提供的代码不是有效的C#代码,因此很难理解您的要求。但我认为你正试图理解表达式this.Hoge如何被翻译成最终可以为你提供方法名称的东西。

如果是这样,那么您的代码示例应该看起来像这样:

var methodName = ((Action<bool>)this.Hoge).Method.Name;

这样做是隐式创建委托类型的实例(在这种情况下,类型为Action<bool>),就好像你写的那样:

var methodName = new Action<bool>(this.Hoge).Method.Name;

当然,一旦你有一个委托类型,那个类型就有一个Method property,它返回一个MethodInfo对象,当然,它有一个Name属性。< / p>


如果这不是您要求的,请通过提供有关您所询问内容的有效,可编译的C#示例以及有关该代码的更精确措辞的问题来改进您的问题。