如何在不使用C#中使用反射的情况下从该方法内部获取方法名称

Nishantha Bulumulla

我想从内部获取方法名称。可以使用reflection如下所示的方法来完成但是,我想不用使用它reflection

System.Reflection.MethodBase.GetCurrentMethod().Name 

样例代码

public void myMethod()
{
    string methodName =  // I want to get "myMethod" to here without using reflection. 
}
乔恩·斯基特

从C#5开始,您可以让编译器为您填充它,如下所示:

using System.Runtime.CompilerServices;

public static class Helpers
{
    public static string GetCallerName([CallerMemberName] string caller = null)
    {
        return caller;
    }
}

MyMethod

public static void MyMethod()
{
    ...
    string name = Helpers.GetCallerName(); // Now name=="MyMethod"
    ...
}

请注意,您可以通过显式传入一个值来错误地使用此方法

string notMyName = Helpers.GetCallerName("foo"); // Now notMyName=="foo"

在C#6中,还有nameof

public static void MyMethod()
{
    ...
    string name = nameof(MyMethod);
    ...
}

但是,这不能保证您使用与方法名称相同的名称-如果您使用nameof(SomeOtherMethod)"SomeOtherMethod",则当然会有一个值但是,如果您做对了,然后将其名称重构为其他名称,那么MyMethod任何不雅观的重构工具也将改变您的用法nameof

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

是否可以在不使用String传递方法名称的情况下编写方法名称?(C#)

来自分类Dev

在不使用__call的情况下获取调用的方法名称

来自分类Dev

是否可以在不使用字符串传递方法名称的情况下编写方法名称?(C#)

来自分类Dev

如何在不使用内置 c# 方法的情况下反转字符串

来自分类Dev

如何在不使用iOS7弃用方法的情况下获取AirPlay设备名称

来自分类Dev

JavaScript-如何在不使用 charAt 方法的情况下返回该索引处的字符

来自分类Dev

如何在不使用反射的情况下获取 php 类中的常量

来自分类Dev

如何在不使用Android中的getLastKnownLocation方法的情况下获取当前经纬度?

来自分类Dev

如何在不使用getattr的情况下获取一种方法的变量

来自分类Dev

如何在C#中使用反射获取从方法调用的方法列表

来自分类Dev

如何获取在传递参数的lambda中使用的方法名称

来自分类Dev

smalltalk反射-如何获取方法名称?

来自分类Dev

如何在不使用AND的情况下从多行获取ID

来自分类Dev

如何在“按查询分组”中不使用linq的情况下调用C#方法

来自分类Dev

在不使用 next() 方法的情况下从 ResultSet 获取值

来自分类Dev

如何在不使用C#字符串数组的循环的情况下获取每个项目

来自分类Dev

如何在不使用C#中内置函数Rank的情况下获取数组的维数?

来自分类Dev

使用nameof在C#中获取setter方法名称

来自分类Dev

如何在不使用Django应用values()方法的情况下使用distinct()方法?

来自分类Dev

如何在C#中使用反射获取方法的所有属性和属性数据

来自分类Dev

如何在不使用 isalpha 的情况下验证 C 中的名称?

来自分类Dev

如何在C#中不使用Edmx的情况下使用DbContext?

来自分类Dev

如何在Android中不使用Xamarin的情况下使用Mono运行C#代码?

来自分类Dev

如何在不进行硬编码的情况下获取方法名?

来自分类Dev

如何在不使用提交按钮的情况下使用jquery ajax方法上传文件

来自分类Dev

如何在不使用表单标签的情况下使用 serialize() 方法 | Laravel

来自分类Dev

如何在不使用 raw() 方法的情况下使用绑定?

来自分类Dev

C / Linux:如何在不使用“ getlogin”的情况下获取用户登录名

来自分类Dev

如何在不使用多个括号的情况下使用字符串从对象内部获取嵌套值?

Related 相关文章

  1. 1

    是否可以在不使用String传递方法名称的情况下编写方法名称?(C#)

  2. 2

    在不使用__call的情况下获取调用的方法名称

  3. 3

    是否可以在不使用字符串传递方法名称的情况下编写方法名称?(C#)

  4. 4

    如何在不使用内置 c# 方法的情况下反转字符串

  5. 5

    如何在不使用iOS7弃用方法的情况下获取AirPlay设备名称

  6. 6

    JavaScript-如何在不使用 charAt 方法的情况下返回该索引处的字符

  7. 7

    如何在不使用反射的情况下获取 php 类中的常量

  8. 8

    如何在不使用Android中的getLastKnownLocation方法的情况下获取当前经纬度?

  9. 9

    如何在不使用getattr的情况下获取一种方法的变量

  10. 10

    如何在C#中使用反射获取从方法调用的方法列表

  11. 11

    如何获取在传递参数的lambda中使用的方法名称

  12. 12

    smalltalk反射-如何获取方法名称?

  13. 13

    如何在不使用AND的情况下从多行获取ID

  14. 14

    如何在“按查询分组”中不使用linq的情况下调用C#方法

  15. 15

    在不使用 next() 方法的情况下从 ResultSet 获取值

  16. 16

    如何在不使用C#字符串数组的循环的情况下获取每个项目

  17. 17

    如何在不使用C#中内置函数Rank的情况下获取数组的维数?

  18. 18

    使用nameof在C#中获取setter方法名称

  19. 19

    如何在不使用Django应用values()方法的情况下使用distinct()方法?

  20. 20

    如何在C#中使用反射获取方法的所有属性和属性数据

  21. 21

    如何在不使用 isalpha 的情况下验证 C 中的名称?

  22. 22

    如何在C#中不使用Edmx的情况下使用DbContext?

  23. 23

    如何在Android中不使用Xamarin的情况下使用Mono运行C#代码?

  24. 24

    如何在不进行硬编码的情况下获取方法名?

  25. 25

    如何在不使用提交按钮的情况下使用jquery ajax方法上传文件

  26. 26

    如何在不使用表单标签的情况下使用 serialize() 方法 | Laravel

  27. 27

    如何在不使用 raw() 方法的情况下使用绑定?

  28. 28

    C / Linux:如何在不使用“ getlogin”的情况下获取用户登录名

  29. 29

    如何在不使用多个括号的情况下使用字符串从对象内部获取嵌套值?

热门标签

归档