获取班级成员的名字

时间:2012-11-04 05:26:07

标签: c#

我有一个班级Trigger,其成员类型为SimpleAction

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.DeclaringType的类型为Trigger item.MemberType是tham的“字段”。 item.ReflectedType也是Trigger如何获取SimpleAction类型的成员列表?

2 个答案:

答案 0 :(得分: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 :(得分:1)

使用GetFields而不是GetMembers,然后您可以根据.FieldType == typeof(SimpleAction)进行过滤。