如何从一个C#泛型方法返回null?


泛型允许我们定义一个类的字段、方法、参数等类型的占位符。泛型在编译时用一些特定类型替换这些占位符。可以使用尖括号<>定义泛型。集合的一个主要限制是缺乏有效的类型检查。这意味着,你可以把任何对象放入集合,因为 C# 编程语言中的所有类都从 Object 基类扩展而来。

而且,我们不能像在普通方法中那样简单地从泛型方法返回 null。以下是我们尝试返回 null 时泛型方法将抛出的错误。

using System;
namespace DemoApplication {
   class Program {
      public static void Main() {
         Add(5, 5);
      }
      public static T Add<T>(T parameter1, T parameter2) {
         return null;
      }
   }
}

因此,为了从泛型方法返回 null 或默认值,我们可以使用 default()。default(T) 将返回提供的类型的默认对象。

示例

 现场演示

using System;
namespace DemoApplication {
   class Program {
      public static void Main() {
         Add(5, 5);
         Console.ReadLine();
      }
      public static T Add<T>(T parameter1, T parameter2) {
         var defaultVal = default(T);
         Console.WriteLine(defaultVal);
         return defaultVal;
      }
   }
}

输出

代码输出是

0

这里我们可以看到返回了 integer 0 的默认值。

更新于: 08-Aug-2020

2K+ 浏览次数

开启您的职业生涯

通过完成课程获得认证

开始
广告