我有一个通用的方法,如:
public T GetLevelElement<T>(string name) where T : ILevelElement
{
//[...]
}
哪个基本上在db中执行查找,在某些情况下它不会(并且不能返回)结果,我想返回null。
然而,显然这是不可能的,因为' T和null之间没有隐式转换'。在这种情况下我该怎么做?
答案 0 :(得分:24)
T不能为null,因为T可以是值类型。尝试返回默认值(T)或添加类约束以指示T只能是这样的引用类型:
public T GetLevelElement<T>(string name) where T : ILevelElement, class
{
[...]
}
答案 1 :(得分:0)
default(T)
。