编程语言
首页 > 编程语言> > c# – 泛型类型的索引器约束

c# – 泛型类型的索引器约束

作者:互联网

是否可以创建一个类型必须具有索引器的泛型类/方法?

我的想法是让以下两种扩展方法适用于使用索引器获取和设置值的任何类型,但似乎无法找到任何关于它的内容.只有关于使索引器本身通用的东西,这不是我追求的……

    public static T GetOrNew<T>(this HttpSessionStateBase session, string key) where T : new()
    {
        var value = (T) session[key];
        return ReferenceEquals(value, null) 
            ? session.Set(key, new T()) 
            : value;
    }

    public static T Set<T>(this HttpSessionStateBase session, string key, T value)
    {
        session[key] = value;
        return value;
    }

解决方法:

无法应用泛型类型参数具有索引器(或任何运算符)的泛型约束.您可以做的最好的事情是创建具有该限制的接口,并限制泛型参数以实现该接口.

标签:c,indexer
来源: https://codeday.me/bug/20190717/1490345.html