C#获取方法的名称

cgstian 2011-03-08 09:42:08
A方法中调用了B函数中的方法:B_method(aa),在B中能否根据参数aa知道A的方法名 和所在的类名?
...全文
141 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzmsyt 2011-03-08
  • 打赏
  • 举报
回复
第一种方案:自己建给类给出属性
第二种方案:反射,这个我也不是很熟悉,你可以msdn下
effun 2011-03-08
  • 打赏
  • 举报
回复
如果能aa这个参数获取调用者的信息,你应该自己制定一套规则,当aa是什么值的时候调用者是什么,这个应该不难。但如果这种规则没办法定,那可以通过调用堆栈跟踪获取调用者的信息,不过这个方法对性能可能会有较大的影响,参考下面的代码。


System.Diagnostics.StackTrace trace = new System.Diagnostics.StackTrace();
System.Diagnostics.StackFrame frame = trace.GetFrame(1);
System.Reflection.MethodBase method = frame.GetMethod();

string methodName = method.Name; // 获取方法名
string typeName = method.DeclaringType.Name; // 获取所在类名称
ivorstar 2011-03-08
  • 打赏
  • 举报
回复
哦对,你可以试试StackTrace类,获取完整的调用堆栈
沅江汐水 2011-03-08
  • 打赏
  • 举报
回复
不行的
看看有关反射的内容吧
ivorstar 2011-03-08
  • 打赏
  • 举报
回复
除非只有A方法才会传aa过去,这样你可以在B_method里switch .. case。否则不太可能仅有参数获取你需要的东西。可以参考一下Handler的设计,把sender作为参数传过去
IT0329 2011-03-08
  • 打赏
  • 举报
回复
阿彪兄 2011-03-08
  • 打赏
  • 举报
回复
反射差不多
sugarforever 2011-03-08
  • 打赏
  • 举报
回复
除非参数中传递类和方法的信息进去。

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧