-3

我想知道这是什么?我认为这种通用方法。它有一个与“哪里”有关的部分。那个怎么样?我也听说过通用类。我如何学习这些你能推荐一篇文章吗?

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

1 回答 1

5

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

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

编辑

在您提供的代码段中,需要约束,因为否则空合并运算符 (??) 将没有意义,因为值类型 ( structs) 不能为空。

于 2013-09-04T08:30:43.863 回答