C# 数组 - CreateInstance() 方法

C# 数组 CreateInstance() 方法用于创建具有指定类型、维度和每个维度长度的数组新实例。

创建的数组可能具有一个或多个维度,具体取决于指定的长度。

当编译时无法确定数组的类型或维度时,此方法尤其有用。

异常

CreateInstance() 方法存在以下异常 -

  • ArgumentNullException:如果 elementType 为 null,则抛出此异常。
  • ArgumentOutOfRangeException:如果任何维度小于零
  • ArgumentException:如果 elementType 无效,则抛出

语法

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

public static Array CreateInstance (Type elementType, int length);

参数

此方法接受以下参数 -

  • elementType:指定数组元素的类型。
  • length:指定数组每一维的大小。

返回值

此方法返回数组类的实例。

示例 1:创建一维数组

这是使用 CreateInstance() 方法创建一维数组实例的基本示例 -

using System;
class Program
{
   static void Main()
   {
      // 使用 CreateInstance 方法
      Array array = Array.CreateInstance(typeof(int), 5);
	  
      for (int i = 0; i < array.Length; i++)
      {
          array.SetValue(i * 10, i);
      }
	  
      foreach (var item in array)
      {
          Console.Write(item + " ");
      }
   }
}

输出

以下是输出 -

0 10 20 30 40

示例 2:创建多维数组

让我们看另一个使用 CreateInstance() 方法创建多维数组实例的示例 -

using System;
class Program
{
   static void Main()
   {
      Array array = Array.CreateInstance(typeof(int), 3, 2);

      // 用值填充数组
      for (int i = 0; i < 3; i++)
      {
         for (int j = 0; j < 2; j++)
         {
            array.SetValue((i + 1) * (j + 1), i, j);
         }
      }
      // 打印数组
      for (int i = 0; i < 3; i++)
      {
         for (int j = 0; j < 2; j++)
         {
            Console.Write(array.GetValue(i, j) + " ");
         }
         Console.WriteLine();
      }
   }
}

输出

以下是输出 -

1 2 
2 4 
3 6

示例 3:创建字符串数组

在此 CreateInstance() 方法示例中,我们创建了一个一维字符串数组的实例 -

using System;
class Program
{
   static void Main()
   {
      // Create a one-dimensional array of strings
      Array stringArray = Array.CreateInstance(typeof(string), 4);

      stringArray.SetValue("Apple", 0);
      stringArray.SetValue("Banana", 1);
      stringArray.SetValue("Cherry", 2);
      stringArray.SetValue("Date", 3);

      foreach (var item in stringArray)
      {
         Console.Write(item + " ");
      }
   }
}

输出

以下是输出 -

Apple Banana Cherry Date 

示例 4:处理无效维度

以下是 CreateInstance() 方法的另一个示例。这里,我们尝试创建一个维度为负的数组 -

using System;
class Program
{
   static void Main()
   {
      try
      {
         // 尝试创建一个具有负维度的数组
         Array array = Array.CreateInstance(typeof(int), -5);
      }
      catch (Exception ex)
      {
         Console.WriteLine($"Exception: {ex.Message}");
      }
   }
}

输出

以下是输出 -

Exception: MonoArgumentException:NULL

csharp_array_class.html