重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

public void A()
{
  //※
}

public void B()
{
  D();
  //略
}

public void C()
{
  D();
  //略
}

public void D()
{
  A();
  //略
}

※の場所でBが実行されているか分かりますか?
引数とかは無しでお願いします。
そんなことできないのでしょうか?

A 回答 (2件)

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()までのメソッド呼び出しを確認できる
    • good
    • 0
この回答へのお礼

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

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

お礼日時:2013/02/27 11:43

同一クラス内なら、D()を呼ぶ直前で、インスタンス変数に、どこから呼び出されたかの


Enumでも保持させとけばいいんじゃないですか?
正直、意味があるかどうかは甚だ疑問です。

StackTraceでも取れますが、Releaseビルドした時にデバッグシンボルがないのでダメだった気がします。
http://pgnote.net/?p=5
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/02/27 16:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!