- ベストアンサー
C# メソッドが実行されているか調べる
public void A() { //※ } public void B() { D(); //略 } public void C() { D(); //略 } public void D() { A(); //略 } ※の場所でBが実行されているか分かりますか? 引数とかは無しでお願いします。 そんなことできないのでしょうか?
- みんなの回答 (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()までのメソッド呼び出しを確認できる
その他の回答 (1)
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
回答No.2
同一クラス内なら、D()を呼ぶ直前で、インスタンス変数に、どこから呼び出されたかの Enumでも保持させとけばいいんじゃないですか? 正直、意味があるかどうかは甚だ疑問です。 StackTraceでも取れますが、Releaseビルドした時にデバッグシンボルがないのでダメだった気がします。 http://pgnote.net/?p=5
質問者
お礼
回答ありがとうございました。
お礼
B()が実行されたかは文字列で検索しないと いけなさそうですね。 ピンポイントで分かれば良かったのですが・・・。 回答ありがとうございました。