A 回答 (3件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
C#なら#1の方法でよいと思います。
実行時に取得するのが重いなら、そのためのツールを作ってビルド時に一覧を取得し、ファイルにでも保存しておくとよいでしょう。なお、実行ファイルに埋め込むなら2パス処理が必要になります。
すみません。
使い慣れてなかったもので、手順間違えて、ポイント付けずに締め切ってしまいました。
遅いですが・・・個人的には、20pt以上です。
No.1
- 回答日時:
サブクラスとは親クラスを継承したクラスの事でよいでしょうか?
まずAssemblyを取得し
GetTypesですべてのタイプを列挙して調べてはどうですか?
static void Main()
{
System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
foreach( Type type in assembly.GetTypes() )
{
if ( check(targetType) )
{
// targetTypeを継承している。
}
}
}
bool check(Type type,Type base)
{
if (type.Base==base)
{
return true;
}
else if (type.Base == null)
{
return false;
}
return check( type.Base , base );
}
親クラスは一つだとすると
1回しか実行しないとは思いますがクラスが多いと、そこそこ重いです。
他にスマートな方法があるかもしれません。
この回答への補足
ありがとうございます。
やはり、全部とってきて、親を引くしかないですか。
それは、考えたんですが・・・
システム定義のクラスも、対象になりますよね。
この方法でチャレンジしてみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
(UWSC) 「#32770」の意味わかり...
-
DataGridViewのセルに斜線を引...
-
FriendとPublicの違い。。。
-
オーバーライド関数の呼び出し...
-
エディットコントロールでEnter...
-
既定のコンストラクタがない?
-
MFCのドラッグ&ドロップについて
-
DebugクラスとTraceクラスの違い
-
C++.NETのWindowsフォームで自...
-
OnInitDialog()の関数の組み込み方
-
メンバ変数のサイズの増加
-
C#で定数クラスをシングルトン...
-
VC++ 7.1 で メインウィンドウ...
-
C++で継承元のクラスの代入演算...
-
openFrameworks-複数台Arduino...
-
このコンパイルエラーの意味に...
-
[MFC]メッセージボックス内にメ...
-
イベントにAddHandlerされてい...
-
【ASP.NET】 独自で作成したク...
-
VC++ リストボックスにデータを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FriendとPublicの違い。。。
-
既定のコンストラクタがない?
-
(UWSC) 「#32770」の意味わかり...
-
クラスのアドレスを引数として...
-
ダイアログ表示時にチェックボ...
-
エディットコントロールでEnter...
-
イベントにAddHandlerされてい...
-
【ASP.NET】 独自で作成したク...
-
DebugクラスとTraceクラスの違い
-
MFCのCListCtrlでスクロールを検出
-
C++ protectedにアクセス不可
-
C++で継承元のクラスの代入演算...
-
継承したクラスを、継承元のク...
-
OnInitDialog()の関数の組み込み方
-
ダイアログクラスのコントロー...
-
MessageBoxを継承したい
-
DataGridViewのセルに斜線を引...
-
このコンパイルエラーの意味に...
-
MFCアプリのコマンドラインでパ...
-
C#のクラス設計について教えて...
おすすめ情報