关于类似T的泛型类型

时间:2013-09-04 08:28:11

标签: c# generics

我想知道这是什么?我认为这种通用方法。它有一个'where'部分。那个怎么样?还有我听过的通用课程。我怎么能学到这些可以推荐一篇文章?

    protected T Item<T>() where T : class
    {
        return GetDataItem() as T ?? default(T);
    }

1 个答案:

答案 0 :(得分:4)

where子句称为“通用约束”。在这种情况下,where T: class指示T必须是引用类型(即,不是struct)。

有关通用约束的更多信息:http://msdn.microsoft.com/en-us/library/d5x73970.aspx 通用类:http://msdn.microsoft.com/en-us/library/sz6zd40f.aspx

修改

在你提供的代码片段中,需要约束,因为否则null-coalescing运算符(??)没有意义,因为值类型(struct s)不能为null。