2012-02-17 14 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

は、この1は動作しません。 –

+0

に貼り付けますが、クラスの名前を変更することは正しいのtypeof文を続けている場合は、静的関数 – brgerner

+1

@lo ReSharperの* Copy Type *リファクタリングでクラスをコピーすると、typeof文も正しく残るはずです。 – brgerner

関連する問題