2012-02-17 91 views

回答

26
new StackFrame().GetMethod().DeclaringType 

MethodBase.GetCurrentMethod().DeclaringType 

new StackTrace(true).GetFrame(<frame index>).GetMethod() //e.g. <frame index> = 0 
0

我不知道這是否是做的最好的方式,但我通常可以設置一個private構造函數(如果我的課是static/util不可實例化的類),並且在實例上調用GetType()

private MyStaticClass 
{ 
    // ... 
} 


public static Type MyStaticMethiod() 
{ 
    return new MyStaticClass().GetType(); 
} 
13

使用的typeof

string className = typeof(MyClass).Name; 
+1

如果代碼被粘貼到另一個類中,這個函數將不起作用 – 2012-02-17 10:47:27

+0

@lo是但重命名類保留正確的typeof語句。 – brgerner 2012-02-17 11:41:17

+1

@lo如果您通過ReSharper的* Copy Type *重構類,則typeof語句也應該保持正確。 – brgerner 2012-02-17 12:15:59

相關問題