[C#/.NET]C#&.NET/.NET Core应用程序的泛型方法如何返回可空的null值呢?
1.95K 次浏览
在C#&.NET的应用程序开发中,有一个通用的方法返回一个泛型的对象,现需要在某些情况下这个泛型方法的返回值是null,以下是代码片段:
public interface IThing
{
public int Id { get; set; }
}
public class Program
{
static void Main()
{
Console.ReadKey();
}
static T FindThing<T>(IList collection, int id) where T : IThing
{
foreach (T thing in collection)
{
if (thing.Id == id)
return thing;
}
return null;
}
}
编译器报错:
CS0403 无法将 null 转换为类型参数“T”,因为它可能是不可为 null 的值类型。请考虑改用“default(T)”。
C#&.NET应用程序中,应该如何在泛型方法中返回可空的null值呢?