- - PR -
Typeからクラスが静的クラスであることを判断できますか
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-06-09 14:31
Testクラスが静的クラスであることを判断しようと思っているのですが
Type type = typeof(Test); 上記で、Testクラスの型を取ってきたのですが Typeクラスには、IsStaticにあたるようなものがなく、判断できません。 何か方法はありますでしょうか。 | ||||
|
投稿日時: 2006-06-09 15:00
IL か何かで少し見ただけなので、記憶が曖昧ですが、 static クラスは、abstract で sealed という "ヘンテコなクラス" になるのかな。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-06-09 15:59
面白そうだったので試してみましたw 本当に abstract で sealed でした。 #クリー○を入れない珈琲と同じくらいヘンテコなクラスです。 | ||||
|
投稿日時: 2006-06-10 14:31
abstract で sealed 確認しました。
たしかにへんてこですね。 ただ、ちょっと変ですがstaticであるかの確認にはなりそうなので この方法でいこうと思います。 ありがとうございました。 | ||||
|
投稿日時: 2006-06-10 15:34
static クラスは static なメンバしか含まれないので、
Declare なメンバをすべて舐めるという方法でも良いかもしれませんが、 これについても、未確認なのでわかりません。(;^-^) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-06-10 22:12
staticなクラスは、staticメンバしか含みませんが
staticメンバしかないクラスは、staticがついてるとは限らないので へんてこチェックでいこうかと思います。 たいした違いはないんですけどね。 インスタンスメソッドを追加したときにコンパイルエラーになるぐらいですね。 でも、これもstaticメンバしかないテストコードを書いておけば解決してしまいますしね。 | ||||
|
投稿日時: 2006-06-10 23:25
そうですよね。 メンバを舐める方法では、実装の結果上 「静的クラス」 であるかどうかなので、 static 修飾子がついているかどうかの判断とはイコールではないですよね。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-06-11 00:12
素朴な疑問ですが、
どういうときに(何のために)そういう判断が必要なんでしょう? 目的によってどうするのが望ましいかは変わりそうですが… |
1