C# 数组 - Empty() 方法

C# 数组 Empty() 方法返回一个空数组的单例实例,而无需每次都创建新的数组。

单例是一种创建型设计模式,它确保同类对象中只有一个可用,并为任何其他代码提供对它的单点访问。

此方法不会为空数组分配内存。

语法

以下是 C# 数组 Empty() 方法的语法 -

public static T[] Empty<T> ();

参数

此方法不接受任何参数 -

返回值

此方法返回一个类型为 T 的空数组。

示例 1:创建一个空的整数数组

这是 Empty() 方法的基本示例,展示了如何创建一个空的整数数组 -

using System;
class Program
{
   static void Main()
   {
      // 创建一个空的整数数组
      int[] emptyArray = Array.Empty<int>();

      Console.WriteLine("Array length: " + emptyArray.Length);
   }
}

输出

以下是输出 -

Array length: 0

示例 2:可选参数的默认值

在此示例中,在方法中对可选参数使用 Empty() 方法可确保您不会不必要地创建新数组。−

using System;
class Program {
   public void PrintNumbers(int[] numbers = null) {
      if (numbers == null) {
         numbers = Array.Empty<int>();
      }

      if (numbers.Length == 0) {
         Console.WriteLine("No numbers to display.");
      } else {
         Console.WriteLine("Numbers: " + string.Join(", ", numbers));
      }
   }
   static void Main() {
      Program program = new Program();
      program.PrintNumbers();
      program.PrintNumbers(new int[] { 1, 2, 3 });
   }
}

输出

以下是输出 -

No numbers to display.
Numbers: 1, 2, 3

示例 3:Array.Empty<T>() 与泛型集合

此示例演示了如何在复杂场景中使用 Empty() 方法,该场景可能与泛型或特定类型的集合一起使用 -

using System;
class Program
{
   static void ProcessArray<T>(T[] array)
   {
      Console.WriteLine("Processing array of type: " + typeof(T).Name);
      Console.WriteLine("Array length: " + array.Length);
   }

   static void Main()
   {
      double[] emptyDoubleArray = new double[0];

      ProcessArray(emptyDoubleArray);
   }
}

输出

以下是输出 -

Processing array of type: Double
Array length: 0

示例 4:创建一个空的字符串数组

以下是 Empty() 方法的另一个示例。在这里,我们创建一个空的字符串数组 -

using System;

class Program
{
   static void Main()
   {
      string[] array = new string [] {"aman", "kumar", "gupta", "tutorialspoint"};
      
      // 创建一个空字符串数组
      string[] emptyArray = Array.Empty<string>();
      
      Console.WriteLine("Array length: " + emptyArray.Length);
      
      // 显示数组元素
      for(int i =0; i<array.Length; i++){
        Console.Write(array[i] + " ");
      }
   }
}

输出

以下是输出 -

Array length: 0
aman kumar gupta tutorialspoint

csharp_array_class.html