为什么EventInfo.EventHandlerType返回可空Type类型值?
为什么
EventInfo.EventHandlerType返回可空的Type?类型? System.Reflection.EventInfo类的EventHandlerType属性被声明为返回可空的Type?类型:
public virtual Type? EventHandlerType { get; }
按理说任何事件都必然有对应的类型——那为何该属性的返回值是可空的?
我查看某一实现的反编译代码时,发现它似乎不会返回null:
namespace System.Reflection.TypeLoading { /// <summary> /// Base class for all EventInfo objects created by a MetadataLoadContext. /// </summary> internal abstract partial class RoEvent : LeveledEventInfo { public sealed override Type EventHandlerType => _lazyEventType ?? (_lazyEventType = ComputeEventHandlerType()); protected abstract Type ComputeEventHandlerType(); private volatile Type? _lazyEventType; } }
而且它与FieldInfo.FieldType、MethodInfo.ReturnType等类似属性不同,这些属性返回的是Type而非Type?。
内容的提问来源于stack exchange,提问作者ChrisW
相关产品推荐
相关产品推荐

