- PR -

Typeからクラスが静的クラスであることを判断できますか

1
投稿者投稿内容
頭脳パン
ベテラン
会議室デビュー日: 2003/04/03
投稿数: 89
投稿日時: 2006-06-09 14:31
Testクラスが静的クラスであることを判断しようと思っているのですが

Type type = typeof(Test);
上記で、Testクラスの型を取ってきたのですが
Typeクラスには、IsStaticにあたるようなものがなく、判断できません。
何か方法はありますでしょうか。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-06-09 15:00
引用:

頭脳パンさんの書き込み (2006-06-09 14:31) より:

Typeクラスには、IsStaticにあたるようなものがなく、判断できません。
何か方法はありますでしょうか。


IL か何かで少し見ただけなので、記憶が曖昧ですが、
static クラスは、abstract で sealed という "ヘンテコなクラス" になるのかな。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-06-09 15:59
引用:

じゃんぬねっとさんの書き込み (2006-06-09 15:00) より:

static クラスは、abstract で sealed という "ヘンテコなクラス" になるのかな。


面白そうだったので試してみましたw
本当に abstract で sealed でした。

#クリー○を入れない珈琲と同じくらいヘンテコなクラスです。
頭脳パン
ベテラン
会議室デビュー日: 2003/04/03
投稿数: 89
投稿日時: 2006-06-10 14:31
abstract で sealed 確認しました。
たしかにへんてこですね。
ただ、ちょっと変ですがstaticであるかの確認にはなりそうなので
この方法でいこうと思います。
ありがとうございました。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-06-10 15:34
static クラスは static なメンバしか含まれないので、
Declare なメンバをすべて舐めるという方法でも良いかもしれませんが、
これについても、未確認なのでわかりません。(;^-^)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
頭脳パン
ベテラン
会議室デビュー日: 2003/04/03
投稿数: 89
投稿日時: 2006-06-10 22:12
staticなクラスは、staticメンバしか含みませんが
staticメンバしかないクラスは、staticがついてるとは限らないので
へんてこチェックでいこうかと思います。
たいした違いはないんですけどね。
インスタンスメソッドを追加したときにコンパイルエラーになるぐらいですね。
でも、これもstaticメンバしかないテストコードを書いておけば解決してしまいますしね。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-06-10 23:25
引用:

頭脳パンさんの書き込み (2006-06-10 22:12) より:

staticなクラスは、staticメンバしか含みませんが
staticメンバしかないクラスは、staticがついてるとは限らないので
へんてこチェックでいこうかと思います。
たいした違いはないんですけどね。


そうですよね。

メンバを舐める方法では、実装の結果上 「静的クラス」 であるかどうかなので、
static 修飾子がついているかどうかの判断とはイコールではないですよね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2006-06-11 00:12
素朴な疑問ですが、
どういうときに(何のために)そういう判断が必要なんでしょう?
目的によってどうするのが望ましいかは変わりそうですが…
1

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