Array::CreateInstance Method (Type^, Int32)
Assembly: mscorlib (in mscorlib.dll)
Return Value
Type: System::Array^A 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.
using namespace System; void PrintValues( Array^ myArr ); void main() { // Creates and initializes a one-dimensional Array instance of type Int32. Array^ my1DArray = Array::CreateInstance( Int32::typeid, 5 ); for ( int i = my1DArray->GetLowerBound( 0 ); i <= my1DArray->GetUpperBound( 0 ); i++ ) my1DArray->SetValue( i + 1, i ); // Displays the values of the Array. Console::WriteLine( "The one-dimensional Array instance contains the following values:" ); PrintValues( my1DArray ); } void PrintValues( 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 { Console::WriteLine(); i = 1; } Console::Write( "\t{0}", myEnumerator->Current ); } Console::WriteLine(); } /* This code produces the following output. The one-dimensional Array instance contains the following values: 1 2 3 4 5 */
Available since 10
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0