BaseForm
プロジェクト内のすべてのフォームから継承する必要がある基本フォーム ( ) があります。それらのいくつかはそれを継承し、他のものは継承しません。多くのフォームがあり、それぞれがこのフォームを継承しているかどうかを確認するのに時間がかかるため、現在継承していないすべてのフォームのリストを取得するにはどうすればよいですか? 多分いくつかの反射?
質問する
60 次
2 に答える
3
チェックType.IsSubclassOf()を使用します。
Assembly assembly = Assembly.GetExecutingAssembly();
Type baseType = typeof(BaseForm);
foreach (Type type in assembly.GetTypes().Where(t => (t.FullName.Contains("Form") && (t != baseType))))
{
if (type.IsSubclassOf(typeof(BaseForm)))
Console.WriteLine("{0} is subclass of {1}", type, baseType);
}
于 2013-01-17T14:01:08.277 に答える
3
Type formType = typeof(Form);
foreach (Type type in Assembly.GetExecutingAssembly().GetTypes())
if (formType.IsAssignableFrom(type))
{
// print the list of forms
}
于 2013-01-17T14:05:17.883 に答える