码迷,mamicode.com
首页 > 其他好文 > 详细

反射 通过父类获取所有子类

时间:2016-07-30 16:41:48      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:

 1  public void AddStates()
 2         {
 3 
 4             var subTypeQuery = from t in Assembly.GetExecutingAssembly().GetTypes()
 5                                where IsSubClassOf(t, typeof(State))
 6                                select t;
 7 
 8             foreach (var type in subTypeQuery)
 9             {
10                 var stateObj = Activator.CreateInstance(type) as State;
11                 stateObj.Action();
12                 if (!states.Contains(stateObj))
13                     states.Add(stateObj);
14             }
15         }
16 
17         static bool IsSubClassOf(Type type, Type baseType)
18         {
19             var b = type.BaseType;
20             while (b != null)
21             {
22                 if (b.Equals(baseType))
23                 {
24                     return true;
25                 }
26                 b = b.BaseType;
27             }
28             return false;
29         }

 

反射 通过父类获取所有子类

标签:

原文地址:http://www.cnblogs.com/redUnity/p/5720991.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!