我有一个班级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
类型的成员列表?
答案 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)进行过滤。