c# - 无法从泛型方法返回 'null'?

标签 c# .net generics

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

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

它基本上在数据库中执行查找,在某些情况下它不会(也不能返回)结果,我想返回 null。

然而,这显然是不可能的,因为“T 和 null 之间没有隐式转换”。这种情况怎么办?

最佳答案

T 不能为 null,因为 T 可能是值类型。尝试返回 default(T) 或添加类约束以指示 T 只能是引用类型,如下所示:

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

关于c# - 无法从泛型方法返回 'null'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1233517/

相关文章:

c# - ReSharper 能否生成将属性从一个对象复制到另一个对象的代码?

c# - 使用Windows搜索文件API

c# - 创建内存消耗应用程序

C# - 大型集合存储

java - 如何获取泛型类的 "real"类型?

c# - 程序集和命名空间

c# - 更新包时如何防止nuget恢复到旧版本的依赖包

.net - 您如何快速了解类层次结构?

java - 有没有等价于<?扩展 T>, <? C++中的 super T>?

c# - 如何在 C# 中使用 T 类型进行类型转换并访问其属性和变量