不能从泛型方法返回'null'?

时间:2009-08-05 14:12:26

标签: c# .net generics

我有一个通用的方法,如:

public T GetLevelElement<T>(string name) where T : ILevelElement
{
    //[...]
}

哪个基本上在db中执行查找,在某些情况下它不会(并且不能返回)结果,我想返回null。

然而,显然这是不可能的,因为' T和null之间没有隐式转换'。在这种情况下我该怎么做?

2 个答案:

答案 0 :(得分:24)

T不能为null,因为T可以是值类型。尝试返回默认值(T)或添加类约束以指示T只能是这样的引用类型:

public T GetLevelElement<T>(string name) where T : ILevelElement, class
{
    [...]
}

答案 1 :(得分:0)

达斯汀坎贝尔是对的。另一种解决方案是返回default(T)

相关问题