首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

在静态方法里,如何能得到调用者的类名

2012-03-31 
在静态方法里,怎么能得到调用者的类名?在静态方法里,怎么能得到调用者的类名?比如我有一个静态方法:public

在静态方法里,怎么能得到调用者的类名?
在静态方法里,怎么能得到调用者的类名?
比如我有一个静态方法:
public class myClass
{
  public void fun()
  {
  xhelper.helpM();
  }
}


public class xhelper
{
  public static void helpM()
  {
//这里怎么能得到当前的调用者类名myClass?
  }
}

[解决办法]
给方法helpM传递一个调用者的指针

C# code
static void helpM(object sender){    //获取调用者的Type类型,然后想怎么玩怎么玩。    var type = sender.GetType();}
[解决办法]
顶 2楼的!!
[解决办法]
public static void helpM(object o)
{
Type type=o.GetType();
type.Name;//这里就是调用者的类名
//这里怎么能得到当前的调用者类名myClass?
}
[解决办法]
探讨

给方法helpM传递一个调用者的指针

C# code
static void helpM(object sender)
{
//获取调用者的Type类型,然后想怎么玩怎么玩。
var type = sender.GetType();
}

[解决办法]
System.Diagnostics.StackTrace st = new System.Diagnostics.StackTrace();
string name = st.GetFrame(1).GetMethod().Name;

然后大概可以反射出来,吧
[解决办法]
LS正解,晚来一步,通过StackTrace上去
[解决办法]
反射效率都不高,你还是用前面的方法效率比较高,

探讨

还有一个问题,使用StackTrace效率如何?会不会很慢?

热点排行