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