C#中接口中定义泛型成员时的,类型参数的可空性

直接上结论:

1.在定义泛型类型或者泛型成员时,如果使用了T?,那么T需要指定为非空的值类型。

 

 

直接进入正题:

前提:开启”#nullable enable“特性后。

定义一个接口,其中包含一个泛型成员。

注意:此接口中的类型参数T默认是可以为nullable类型的。

    interface IInterface
    {
        T GetT<T>();
    }

 

实现类

1.隐式实现接口中的成员

    class ImpInterface : IInterface
    {
        public T GetT<T>()
        {
            return default;//warning:可能返回null的引用。
        }
    }

 

posted @ 2021-12-25 22:07  IdealAnt  阅读(292)  评论(0)    收藏  举报