Array.CreateInstance Method (Type, Int32)
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Creates a one-dimensional Array of the specified Type and length, with zero-based indexing.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- elementType
- Type: System.Type
The Type of the Array to create.
- length
- Type: System.Int32
The size of the Array to create.
Return Value
Type: System.ArrayA new one-dimensional Array of the specified Type with the specified length, using zero-based indexing.
| Exception | Condition |
|---|---|
| ArgumentNullException | elementType is null. |
| ArgumentException | elementType is not a valid Type. |
| NotSupportedException | elementType is not supported. For example, Void is not supported. -or- elementType is an open generic type. |
| ArgumentOutOfRangeException | length is less than zero. |
Unlike most classes, Array provides the CreateInstance method, instead of public constructors, to allow for late bound access.
Reference-type elements are initialized to null. Value-type elements are initialized to zero.
This method is an O(n) operation, where n is length.
The following code example shows how to create and initialize a one-dimensional Array.
Note: |
|---|
To run this example, see Building examples that have static TextBlock controls for Windows Phone 8. |
using System; public class Example { public static void Demo(System.Windows.Controls.TextBlock outputBlock) { // Creates and initializes a one-dimensional Array of type Int32. Array my1DArray = Array.CreateInstance(typeof(Int32), 5); for (int i = my1DArray.GetLowerBound(0); i <= my1DArray.GetUpperBound(0); i++) my1DArray.SetValue(i + 1, i); // Displays the values of the Array. outputBlock.Text += "The one-dimensional Array contains the following values:" + "\n"; PrintValues(outputBlock, my1DArray); } public static void PrintValues(System.Windows.Controls.TextBlock outputBlock, Array myArr) { System.Collections.IEnumerator myEnumerator = myArr.GetEnumerator(); int i = 0; int cols = myArr.GetLength(myArr.Rank - 1); while (myEnumerator.MoveNext()) { if (i < cols) { i++; } else { outputBlock.Text += "\n"; i = 1; } outputBlock.Text += String.Format("\t{0}", myEnumerator.Current); } outputBlock.Text += "\n"; } } /* This code produces the following output. The one-dimensional Array contains the following values: 1 2 3 4 5 */
Note: