- PR -

実行中のメソッドをメソッド内で取得する

投稿者投稿内容
siop
ベテラン
会議室デビュー日: 2003/08/12
投稿数: 67
投稿日時: 2004-12-17 06:20
引用:

StackFrameクラス使ってはいかがですか。

Public Sub DebugWriteLineMethodName()
Debug.WriteLine(New StackFrame(1).GetMethod.Name)
End Sub


これ、いいですね。いろいろ便利なものがあるものですね。
知ってるのと、知らないとでは、作り方が大きく違ってくるものです。

StackFrameではクラス名を取得できないようなので、自分自身のオブジェクトを
渡してGetType.Nameしてもいいですかね。

Public Sub MethodStart(o As Object)
Dim sf As New StackFrame(1)
Debug.WriteLine( _
o.GetType.Name & "-" & sf.GetMethod.Name & "-" & "START")
End Sub



[ メッセージ編集済み 編集者: siop 編集日時 2004-12-17 09:53 ]
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2004-12-17 10:42
引用:

siopさんの書き込み (2004-12-17 06:20) より:
StackFrameではクラス名を取得できないようなので、自分自身のオブジェクトを
渡してGetType.Nameしてもいいですかね。


MethodBaseから定義している(あるいは実装している?)クラスを取得できませんでしたっけ?
siop
ベテラン
会議室デビュー日: 2003/08/12
投稿数: 67
投稿日時: 2004-12-17 10:59
引用:

MethodBaseから定義している(あるいは実装している?)クラスを取得できませんでしたっけ?



取れました!

よって、パラメータなしでOKです。

Public Sub MethodStart()
Dim sf As New StackFrame(1)
Debug.WriteLine( _
sf.GetMethod.DeclaringType.Name & "-" & sf.GetMethod.Name & "-" & "START")
End Sub

これでだいぶすっきりしました。

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

スキルアップ/キャリアアップ(JOB@IT)