• ベストアンサー

C# メソッドが実行されているか調べる

public void A() {   //※ } public void B() {   D();   //略 } public void C() {   D();   //略 } public void D() {   A();   //略 } ※の場所でBが実行されているか分かりますか? 引数とかは無しでお願いします。 そんなことできないのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • cma3atgoo
  • ベストアンサー率35% (32/90)
回答No.1

void a() { System.Diagnostics.StackTrace z = new System.Diagnostics.StackTrace(); System.Diagnostics.Debug.Print(z.ToString()); } void b() {d();} void c() {d();} void d() {a();} a()までのメソッド呼び出しを確認できる

suhixinkusu
質問者

お礼

B()が実行されたかは文字列で検索しないと いけなさそうですね。 ピンポイントで分かれば良かったのですが・・・。 回答ありがとうございました。

その他の回答 (1)

回答No.2

同一クラス内なら、D()を呼ぶ直前で、インスタンス変数に、どこから呼び出されたかの Enumでも保持させとけばいいんじゃないですか? 正直、意味があるかどうかは甚だ疑問です。 StackTraceでも取れますが、Releaseビルドした時にデバッグシンボルがないのでダメだった気がします。 http://pgnote.net/?p=5

suhixinkusu
質問者

お礼

回答ありがとうございました。

関連するQ&A

専門家に質問してみよう