我有一个System.Reflection.EventInfo
对象,我想知道这个对象描述的事件是否是静态的。与System.Reflection.MethodInfo
不同,EventInfo
没有IsStatic
属性可以告诉我我需要什么。那么,我怎么能用C#来做呢?
另外,如果我有一个描述我班级成员的MemberInfo
对象(可能是属性,方法,字段等),我如何确定该成员是否是静态的?是唯一的方法来将MemberInfo
对象转换为所需的类型(例如,如果这是一个方法,则转换为MethodInfo
),然后检查该成员是否是静态的?
答案 0 :(得分:5)
声明后,Event
会变成一种特殊的方法,其类型为delegate
,并带有Add
和Remove
方法。
您可以做的是检查生成的Add
方法是否为static
:
var isStaticEvent = eventInfo.GetAddMethod().IsStatic;