- - PR -
VB.NET2003 関数の呼び出し先の取得
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-03-06 16:24
VB.NET初心者なのですが、VB.NETで関数の呼び出し先の取得方法について分からない事があるのですが、
関数が呼び出された(使用された)フォーム・もしくはクラスを関数側で取得することはできないでしょうか。 どなたか、取得方法を伝授いただけないでしょうか? | ||||||||
|
投稿日時: 2006-03-06 16:47
少し日本語の食い違いで勘違いしているかもしれませんが。
「関数を呼び出した(使用した)フォーム・もしくはクラスを関数側で取得することはできないでしょうか。 」と解釈します。 引数でオブジェクトを渡すのはいけないのでしょうか? _________________ 囚人のジレンマな日々 | ||||||||
|
投稿日時: 2006-03-06 16:58
早速のお返事ありがとうございます。
引数でオブジェクトを渡す方法以外を探しております。 New StackFrame(1).GetMethod.DeclaringType.Name を使用した場合、呼び出しもとの関数を取得することができる事は わかったのですが、 できれば クラス又は、フォームを取得したいと考えてます。 よろしくお願いします。 | ||||||||
|
投稿日時: 2006-03-06 17:54
StackFrame(1).GetMethod().DeclaringType.FullName
はどうでしょう? あと、メソッド名なら StackFrame(1).GetMethod.Name でも取得できます。 | ||||||||
|
投稿日時: 2006-03-06 18:47
ありがとうございました。
New StackFrame(1).GetMethod.DeclaringType.Name を使用することで、解決する事ができました。 又、機会がありましたらよろしくお願いします。 | ||||||||
|
投稿日時: 2006-03-06 19:20
関数は取得できないでしょう。 呼び出し元の System.Type の名前です。 関数というか、メソッドは関係ないように思えます。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-03-06 19:26
すいません、今見ると何を失念していたのすらわからないほどに大ボケかましてますね。 月に 1 度くらい、こういう天然ボケをかましてるように思えます... orz [ シグネチャを削除 ] [ メッセージ編集済み 編集者: じゃんぬねっと 編集日時 2006-10-12 11:48 ] | ||||||||
|
投稿日時: 2006-03-06 22:59
こ、これは無理というか違う動作なんじゃないかと… ちなみにStackFrameなんかを使う場合、呼び出し元(論理的に一回呼び出し分だけ前のメソッド)という保証はないので、 メソッドに属性なんか付ける必要があるかもしれません(どの属性だったか忘れましたが)。 ※まあ属性付けても、そのさらに前がインライン展開されていない保証もないと思うので、 絶対かというと微妙なのかもしれませんが(クラスの取得レベルなら動作的に問題ない?)。 |
1