2012-11-04 96 views
0

我有一個類TriggerSimpleAction類型的一些成員的名字:現在獲取類成員

public SimpleAction OnOver; 
public SimpleAction OnOut; 
public SimpleAction OnDown; 
public SimpleAction OnUp; 
public SimpleAction OnClick; 
public SimpleAction OnHold; 

,從另一個類我這樣做:

MemberInfo[] members = triggerScript.GetType().GetMembers(); 
    foreach (MemberInfo item in members) { 
      Debug.Log(item.Name); 
    } 

在日誌按摩,我可以請參閱Trigger類的所有成員的名稱列表。 OnOver,OnOut atc也在該列表中。但我怎樣才能將SimpleAction類型的成員與他人分開? item.DeclaringTypeTrigger的類型 item.MemberType是tham的「字段」。 item.ReflectedType也是Trigger如何獲得SimpleAction類型的成員列表?

+0

嘗試,如果(產品SimpleAction) – Koenyn

回答

2

使用方法GetFields然後用FieldType過濾領域是SimpleAction

FieldInfo[] fields = triggerScript.GetType() 
      .GetFields(BindingFlags.Public | BindingFlags.Instance) 
      .Where(field => field.FieldType == typeof (SimpleAction)) 
      .ToArray(); 

foreach (var field in fields) 
{ 

} 
1

使用GetFields而不是GetMembers,那麼你可以基於.FieldType == typeof(SimpleAction)過濾。