[VB.NET] Shared で Type オブジェクトの取得
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-05-18 18:23
お世話になります。
Shared メソッドにおいて、自身の Type オブジェクトを取得することは できるのでしょうか? 通常のインスタンスメソッドであれば、 Me.GetType() で取れると思いますが、Shared の場合 Me がいないので。。 よろしくお願いします。 | ||||||||
|
投稿日時: 2004-05-18 18:44
ボアさん、こんばんは。
vb.netですよね? GetType 演算子が使えます。
| ||||||||
|
投稿日時: 2004-05-19 08:26
Meというところから、「“クラスとしての自分”を表すキーワードはないか」、ということだと思ったのですが。例えば、「MyClass.GetType」(注:使えないですよ)みたいなキーワード、だと思ったのですが、違うのかな? | ||||||||
|
投稿日時: 2004-05-19 09:30
Jittaさん、お早うございます。
あ、単に「静的な呼出の中で呼び出される側の Type を(ベタでもいいから)扱いたい」という話ではなく、という事ですね。なるほど。 #でも、それが必要になる局面というのが思い浮かばない...。 【修正】 引用タグ書き損じ ![]() [ メッセージ編集済み 編集者: きくちゃん 編集日時 2004-05-19 09:32 ] | ||||||||
|
投稿日時: 2004-05-19 10:38
Sharedということは、呼び出すクラスの名前は静的にコードに書かなければいけませんよね。
例えばMyClassなら MyClass.xxx() というように。 それなら初めから GetType(MyClass) と書けば良いのではないでしょうか。 Typeを取得する部分をメソッド呼び出し風に書きたい理由が何かあるんでしょうか? | ||||||||
|
投稿日時: 2004-05-19 11:12
例えば、 ・クラス名を変更してもコードを直さなくてもよい →スケルトンコードに埋め込み、修正しなくてもよい ・別のファイルにメソッドを書いておいて、多くのクラスにコピー!! なんてことを考えてみました。 | ||||||||
|
投稿日時: 2004-05-19 11:28
こういう場合に、直接的にやる方法はなかったりしますので、 System.Reflection.MethodBase.GetCurrentMethod.DeclaringType 等とやったりします。 | ||||||||
|
投稿日時: 2004-05-19 11:45
は、むしろテンプレート作成の方が本筋かも……。 http://www.gotdotnet.com/japan/community/qa/qa200307.aspx
だと、たしかに「GetType(何かのキーワード)」で扱えると便利ですね。 |