You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 12:14:51