【发布时间】:2016-11-01 02:39:21
【问题描述】:
已经浏览、搜索和希望,但找不到直接的答案。
C# 6.0 中是否有在不指定方法名的情况下使用 nameof 获取当前方法名?
我正在将我的测试结果添加到这样的字典中:
Results.Add(nameof(Process_AddingTwoConsents_ThreeExpectedRowsAreWrittenToStream), result);
如果我不必显式指定方法名称,我宁愿复制+粘贴该行,这是一个无效的示例:
Results.Add(nameof(this.GetExecutingMethod()), result);
如果可能,我不想使用反射。
更新
这不是(如建议的)this question 的副本。我在问是否可以明确地使用 nameof without(!) 反射来获取当前方法名称。
【问题讨论】:
-
你为什么不使用这个:stackoverflow.com/questions/44153/…?
-
您可以使用
StackTrace获取此类信息,但这很慢。为了实现自动化,您可以使用代码生成(例如,在编译器之前运行并用其他东西替换某些东西的工具)或 AOP(参见this)。 -
这样不行吗?
System.Reflection.MethodInfo.GetCurrentMethod().Name -
他的字面意思是“不使用反射”
标签: c# reflection c#-6.0 nameof