İngilizce dilinde oku

Aracılığıyla paylaş


Array.CreateInstance Yöntem

Tanım

Array sınıfının yeni bir örneğini başlatır.

Aşırı Yüklemeler

CreateInstance(Type, Int32)

Belirtilen Type ve uzunluğunun tek boyutlu Array bir kısmını sıfır tabanlı dizinleme ile oluşturur.

CreateInstance(Type, Int32[])

Belirtilen Type ve boyut uzunluklarının çok boyutlu Array bir kısmını sıfır tabanlı dizinleme ile oluşturur. Boyut uzunlukları 32 bitlik bir tamsayı dizisinde belirtilir.

CreateInstance(Type, Int64[])

Belirtilen Type ve boyut uzunluklarının çok boyutlu Array bir kısmını sıfır tabanlı dizinleme ile oluşturur. Boyut uzunlukları 64 bitlik bir tamsayı dizisinde belirtilir.

CreateInstance(Type, Int32, Int32)

Sıfır tabanlı dizinleme ile belirtilen Type ve boyut uzunluklarının iki boyutlu Array bir öğesini oluşturur.

CreateInstance(Type, Int32[], Int32[])

Belirtilen alt sınırlarla belirtilen Type ve boyut uzunluklarının çok boyutlu Array bir öğesini oluşturur.

CreateInstance(Type, Int32, Int32, Int32)

Belirtilen Type ve boyut uzunluklarının üç boyutlu Array bir kısmını sıfır tabanlı dizinleme ile oluşturur.

CreateInstance(Type, Int32)

Kaynak:
Array.cs
Kaynak:
Array.cs
Kaynak:
Array.cs

Belirtilen Type ve uzunluğunun tek boyutlu Array bir kısmını sıfır tabanlı dizinleme ile oluşturur.

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

Parametreler

elementType
Type

Type Oluşturulacak öğesininArray.

length
Int32

Oluşturulacak öğesinin Array boyutu.

Döndürülenler

Sıfır tabanlı dizin oluşturma kullanılarak belirtilen Type uzunluğuyla belirtilen öğesinin yeni bir tek boyutluArray.

Özel durumlar

elementType, null değeridir.

elementType geçerli Typebir değil.

elementType Desteklenmez. Örneğin, Void desteklenmez.

-veya-

elementType açık bir genel türdür.

length, sıfırdan küçüktür.

Örnekler

Aşağıdaki kod örneği, tek boyutlu Arraybir öğesinin nasıl oluşturulacağını ve başlatacağını gösterir.

C#
using System;
public class SamplesArray  {

   public static void Main()  {

      // Creates and initializes a one-dimensional Array of type int.
      Array my1DArray=Array.CreateInstance( typeof(int), 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 contains the following values:" );
      PrintValues( my1DArray );
   }

   public static 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 contains the following values:
    1    2    3    4    5
*/

Açıklamalar

Çoğu sınıftan CreateInstance farklı olarak, Array geç bağlı erişime izin vermek için ortak oluşturucular yerine yöntemini sağlar.

Başvuru türü öğeleri olarak nullbaşlatılır. Değer türü öğeleri sıfır olarak başlatılır.

Bu yöntem bir O(n) işlemidir; burada n olur length.

F# dilinde genellikle bunun yerine Array.zeroCreate işlevi kullanılır.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

CreateInstance(Type, Int32[])

Kaynak:
Array.cs
Kaynak:
Array.cs
Kaynak:
Array.cs

Belirtilen Type ve boyut uzunluklarının çok boyutlu Array bir kısmını sıfır tabanlı dizinleme ile oluşturur. Boyut uzunlukları 32 bitlik bir tamsayı dizisinde belirtilir.

C#
public static Array CreateInstance (Type elementType, params int[] lengths);

Parametreler

elementType
Type

Type Oluşturulacak öğesininArray.

lengths
Int32[]

Oluşturulacak her boyutunun Array boyutunu temsil eden 32 bitlik tamsayı dizisi.

Döndürülenler

Sıfır tabanlı dizin oluşturma kullanılarak her boyut için belirtilen uzunlukta belirtilen yeni bir çok ArrayType boyutlu.

Özel durumlar

elementType, null değeridir.

-veya-

lengths, null değeridir.

elementType geçerli Typebir değil.

-veya-

Dizi lengths birden az öğe içeriyor.

elementType Desteklenmez. Örneğin, Void desteklenmez.

-veya-

elementType açık bir genel türdür.

içindeki lengths herhangi bir değer sıfırdan küçüktür.

Örnekler

Aşağıdaki kod örneği, çok boyutlu Arraybir öğesinin nasıl oluşturulacağını ve başlatacağını gösterir.

C#
using System;
public class SamplesArray3  {

   public static void Main()  {

      // Creates and initializes a multidimensional Array of type string.
      int[] myLengthsArray = new int[4] { 2, 3, 4, 5 };
      Array my4DArray=Array.CreateInstance( typeof(string), myLengthsArray );
      for ( int i = my4DArray.GetLowerBound(0); i <= my4DArray.GetUpperBound(0); i++ )
         for ( int j = my4DArray.GetLowerBound(1); j <= my4DArray.GetUpperBound(1); j++ )
            for ( int k = my4DArray.GetLowerBound(2); k <= my4DArray.GetUpperBound(2); k++ )
               for ( int l = my4DArray.GetLowerBound(3); l <= my4DArray.GetUpperBound(3); l++ )  {
                  int[] myIndicesArray = new int[4] { i, j, k, l };
                  my4DArray.SetValue( Convert.ToString(i) + j + k + l, myIndicesArray );
               }

      // Displays the values of the Array.
      Console.WriteLine( "The four-dimensional Array contains the following values:" );
      PrintValues( my4DArray );
   }

   public static 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 four-dimensional Array contains the following values:
    0000    0001    0002    0003    0004
    0010    0011    0012    0013    0014
    0020    0021    0022    0023    0024
    0030    0031    0032    0033    0034
    0100    0101    0102    0103    0104
    0110    0111    0112    0113    0114
    0120    0121    0122    0123    0124
    0130    0131    0132    0133    0134
    0200    0201    0202    0203    0204
    0210    0211    0212    0213    0214
    0220    0221    0222    0223    0224
    0230    0231    0232    0233    0234
    1000    1001    1002    1003    1004
    1010    1011    1012    1013    1014
    1020    1021    1022    1023    1024
    1030    1031    1032    1033    1034
    1100    1101    1102    1103    1104
    1110    1111    1112    1113    1114
    1120    1121    1122    1123    1124
    1130    1131    1132    1133    1134
    1200    1201    1202    1203    1204
    1210    1211    1212    1213    1214
    1220    1221    1222    1223    1224
    1230    1231    1232    1233    1234
*/

Açıklamalar

Çoğu sınıftan CreateInstance farklı olarak, Array geç bağlı erişime izin vermek için ortak oluşturucular yerine yöntemini sağlar.

Dizideki lengths öğelerin sayısı, yeni Arrayiçindeki boyut sayısına eşit olmalıdır. Dizinin her öğesi lengths , yeni Arrayiçinde karşılık gelen boyutun uzunluğunu belirtmelidir.

Başvuru türü öğeleri olarak nullbaşlatılır. Değer türü öğeleri sıfır olarak başlatılır.

Bu yöntem, içindeki lengthstüm değerlerin çarpımını içeren n bir O(n) işlemidir.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

CreateInstance(Type, Int64[])

Kaynak:
Array.cs
Kaynak:
Array.cs
Kaynak:
Array.cs

Belirtilen Type ve boyut uzunluklarının çok boyutlu Array bir kısmını sıfır tabanlı dizinleme ile oluşturur. Boyut uzunlukları 64 bitlik bir tamsayı dizisinde belirtilir.

C#
public static Array CreateInstance (Type elementType, params long[] lengths);

Parametreler

elementType
Type

Type Oluşturulacak öğesininArray.

lengths
Int64[]

Oluşturulacak her boyutun Array boyutunu temsil eden 64 bit tamsayı dizisi. Dizideki her tamsayı sıfır ile Int32.MaxValue (dahil) arasında olmalıdır.

Döndürülenler

Sıfır tabanlı dizin oluşturma kullanılarak her boyut için belirtilen uzunlukta belirtilen yeni bir çok ArrayType boyutlu.

Özel durumlar

elementType, null değeridir.

-veya-

lengths, null değeridir.

elementType geçerli Typebir değil.

-veya-

Dizi lengths birden az öğe içeriyor.

elementType Desteklenmez. Örneğin, Void desteklenmez.

-veya-

elementType açık bir genel türdür.

içindeki lengths tüm değerler sıfırdan küçük veya Int32.MaxValue değerinden büyüktür.

Örnekler

Aşağıdaki kod örneği, çok boyutlu Arraybir öğesinin nasıl oluşturulacağını ve başlatacağını gösterir.

C#
using System;
public class SamplesArray3  {

   public static void Main()  {

      // Creates and initializes a multidimensional Array of type string.
      int[] myLengthsArray = new int[4] { 2, 3, 4, 5 };
      Array my4DArray=Array.CreateInstance( typeof(string), myLengthsArray );
      for ( int i = my4DArray.GetLowerBound(0); i <= my4DArray.GetUpperBound(0); i++ )
         for ( int j = my4DArray.GetLowerBound(1); j <= my4DArray.GetUpperBound(1); j++ )
            for ( int k = my4DArray.GetLowerBound(2); k <= my4DArray.GetUpperBound(2); k++ )
               for ( int l = my4DArray.GetLowerBound(3); l <= my4DArray.GetUpperBound(3); l++ )  {
                  int[] myIndicesArray = new int[4] { i, j, k, l };
                  my4DArray.SetValue( Convert.ToString(i) + j + k + l, myIndicesArray );
               }

      // Displays the values of the Array.
      Console.WriteLine( "The four-dimensional Array contains the following values:" );
      PrintValues( my4DArray );
   }

   public static 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 four-dimensional Array contains the following values:
    0000    0001    0002    0003    0004
    0010    0011    0012    0013    0014
    0020    0021    0022    0023    0024
    0030    0031    0032    0033    0034
    0100    0101    0102    0103    0104
    0110    0111    0112    0113    0114
    0120    0121    0122    0123    0124
    0130    0131    0132    0133    0134
    0200    0201    0202    0203    0204
    0210    0211    0212    0213    0214
    0220    0221    0222    0223    0224
    0230    0231    0232    0233    0234
    1000    1001    1002    1003    1004
    1010    1011    1012    1013    1014
    1020    1021    1022    1023    1024
    1030    1031    1032    1033    1034
    1100    1101    1102    1103    1104
    1110    1111    1112    1113    1114
    1120    1121    1122    1123    1124
    1130    1131    1132    1133    1134
    1200    1201    1202    1203    1204
    1210    1211    1212    1213    1214
    1220    1221    1222    1223    1224
    1230    1231    1232    1233    1234
*/

Açıklamalar

Çoğu sınıftan CreateInstance farklı olarak, Array geç bağlı erişime izin vermek için ortak oluşturucular yerine yöntemini sağlar.

Dizideki lengths öğelerin sayısı, yeni Arrayiçindeki boyut sayısına eşit olmalıdır. Dizinin her öğesi lengths , yeni Arrayiçinde karşılık gelen boyutun uzunluğunu belirtmelidir.

Başvuru türü öğeleri olarak nullbaşlatılır. Değer türü öğeleri sıfır olarak başlatılır.

Bu yöntem, içindeki lengthstüm değerlerin çarpımını içeren n bir O(n) işlemidir.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

CreateInstance(Type, Int32, Int32)

Kaynak:
Array.cs
Kaynak:
Array.cs
Kaynak:
Array.cs

Sıfır tabanlı dizinleme ile belirtilen Type ve boyut uzunluklarının iki boyutlu Array bir öğesini oluşturur.

C#
public static Array CreateInstance (Type elementType, int length1, int length2);

Parametreler

elementType
Type

Type Oluşturulacak öğesininArray.

length1
Int32

Oluşturulacak ilk boyutunun Array boyutu.

length2
Int32

Oluşturulacak öğesinin ikinci boyutunun Array boyutu.

Döndürülenler

Sıfır tabanlı dizin oluşturma kullanılarak her boyut için belirtilen uzunlukla belirtilen öğesinin yeni iki boyutlu ArrayType .

Özel durumlar

elementType, null değeridir.

elementType geçerli Typebir değil.

elementType Desteklenmez. Örneğin, Void desteklenmez.

-veya-

elementType açık bir genel türdür.

length1, sıfırdan küçüktür.

-veya-

length2, sıfırdan küçüktür.

Örnekler

Aşağıdaki kod örneğinde iki boyutlu bir öğesinin nasıl oluşturulacağı ve başlatacağı gösterilmektedir Array.

C#
using System;
public class SamplesArray1  {

   public static void Main()  {

      // Creates and initializes a two-dimensional Array of type string.
      Array my2DArray=Array.CreateInstance( typeof(string), 2, 3 );
      for ( int i = my2DArray.GetLowerBound(0); i <= my2DArray.GetUpperBound(0); i++ )
         for ( int j = my2DArray.GetLowerBound(1); j <= my2DArray.GetUpperBound(1); j++ )
            my2DArray.SetValue( "abc" + i + j, i, j );

      // Displays the values of the Array.
      Console.WriteLine( "The two-dimensional Array contains the following values:" );
      PrintValues( my2DArray );
   }

   public static 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 two-dimensional Array contains the following values:
    abc00    abc01    abc02
    abc10    abc11    abc12
*/

Açıklamalar

Çoğu sınıftan CreateInstance farklı olarak, Array geç bağlı erişime izin vermek için ortak oluşturucular yerine yöntemini sağlar.

Başvuru türü öğeleri olarak nullbaşlatılır. Değer türü öğeleri sıfır olarak başlatılır.

Bu yöntem, ve length2ürününün length1 olduğu n bir O(n) işlemidir.

F# dilinde bunun yerine Array2D.zeroCreate işlevi kullanılabilir.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

CreateInstance(Type, Int32[], Int32[])

Kaynak:
Array.cs
Kaynak:
Array.cs
Kaynak:
Array.cs

Belirtilen alt sınırlarla belirtilen Type ve boyut uzunluklarının çok boyutlu Array bir öğesini oluşturur.

C#
public static Array CreateInstance (Type elementType, int[] lengths, int[] lowerBounds);

Parametreler

elementType
Type

Type Oluşturulacak öğesininArray.

lengths
Int32[]

Oluşturulacak her boyutunun Array boyutunu içeren tek boyutlu bir dizi.

lowerBounds
Int32[]

Oluşturulacak her boyutunun Array alt sınırlarını (başlangıç dizini) içeren tek boyutlu bir dizi.

Döndürülenler

Her boyut için belirtilen Type uzunluk ve alt sınır ile belirtilen öğesinin yeni bir çok Array boyutlu.

Özel durumlar

elementType, null değeridir.

-veya-

lengths, null değeridir.

-veya-

lowerBounds, null değeridir.

elementType geçerli Typebir değil.

-veya-

Dizi lengths birden az öğe içeriyor.

-veya-

lengths ve lowerBounds dizileri aynı sayıda öğe içermez.

elementType Desteklenmez. Örneğin, Void desteklenmez.

-veya-

elementType açık bir genel türdür.

içindeki lengths herhangi bir değer sıfırdan küçüktür.

-veya-

içindeki lowerBounds herhangi bir değer, boyutun alt sınırı ve uzunluğunun toplamı Int32.MaxValue değerinden büyük olacak şekilde çok büyüktür.

Örnekler

Aşağıdaki kod örneği, belirtilen alt sınırlarla çok boyutlu Array bir oluşturma ve başlatma işlemini gösterir.

C#
using System;
public class SamplesArray4  {

   public static void Main()  {

      // Creates and initializes a multidimensional Array of type string.
      int[] myLengthsArray = new int[2] { 3, 5 };
      int[] myBoundsArray = new int[2] { 2, 3 };
      Array myArray=Array.CreateInstance( typeof(string), myLengthsArray, myBoundsArray );
      for ( int i = myArray.GetLowerBound(0); i <= myArray.GetUpperBound(0); i++ )
         for ( int j = myArray.GetLowerBound(1); j <= myArray.GetUpperBound(1); j++ )  {
            int[] myIndicesArray = new int[2] { i, j };
            myArray.SetValue( Convert.ToString(i) + j, myIndicesArray );
         }

      // Displays the lower bounds and the upper bounds of each dimension.
      Console.WriteLine( "Bounds:\tLower\tUpper" );
      for ( int i = 0; i < myArray.Rank; i++ )
         Console.WriteLine( "{0}:\t{1}\t{2}", i, myArray.GetLowerBound(i), myArray.GetUpperBound(i) );

      // Displays the values of the Array.
      Console.WriteLine( "The Array contains the following values:" );
      PrintValues( myArray );
   }

   public static 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.

Bounds:    Lower    Upper
0:    2    4
1:    3    7
The Array contains the following values:
    23    24    25    26    27
    33    34    35    36    37
    43    44    45    46    47
*/

Açıklamalar

Çoğu sınıftan CreateInstance farklı olarak, Array geç bağlı erişime izin vermek için ortak oluşturucular yerine yöntemini sağlar.

lengths ve lowerBounds dizileri aynı sayıda öğeye sahip olmalıdır. Dizideki lengths öğelerin sayısı, yeni Arrayiçindeki boyut sayısına eşit olmalıdır.

Dizinin her öğesi lengths , yeni Arrayiçinde karşılık gelen boyutun uzunluğunu belirtmelidir.

Dizinin her öğesi lowerBounds , yeni Arrayiçinde karşılık gelen boyutun alt sınırlarını belirtmelidir. Genel olarak, .NET sınıf kitaplığı ve birçok programlama dili sıfır olmayan alt sınırları işlemez.

Başvuru türü öğeleri olarak nullbaşlatılır. Değer türü öğeleri sıfır olarak başlatılır.

Bu yöntem, içindeki lengthstüm değerlerin çarpımını içeren n bir O(n) işlemidir.

Not

Tüm diller sıfır olmayan alt sınırlara sahip dizileri desteklemez ve bu nedenle sıfır olmayan örneklerini dilin dizi türüne göre Array atamanız mümkün olmayabilir. Örneğin, alt sınır 6 olan 1 boyutlu bir tamsayı dizisini C# int[] türüne dönüştüremezsiniz. Bu, InvalidCastException çalışma zamanı sırasında "'System.Int32[*]' türündeki nesne 'System.Int32[]'." türüne türe getirilemiyor, burada yıldız (*) sıfır tabanlı olmayan dizin anlamına gelir. Ancak, ile CreateInstance(Type, Int32[], Int32[]) oluşturulan herhangi bir derecelendirmenin sıfır tabanlı dizilerini dilin dizisine dönüştürebilirsiniz. Örneğin, bu yöntemle oluşturulan 2 boyutlu sıfır tabanlı bir tamsayı dizisini C# int[,] türüne dönüştürebilirsiniz.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

CreateInstance(Type, Int32, Int32, Int32)

Kaynak:
Array.cs
Kaynak:
Array.cs
Kaynak:
Array.cs

Belirtilen Type ve boyut uzunluklarının üç boyutlu Array bir kısmını sıfır tabanlı dizinleme ile oluşturur.

C#
public static Array CreateInstance (Type elementType, int length1, int length2, int length3);

Parametreler

elementType
Type

Type Oluşturulacak öğesininArray.

length1
Int32

Oluşturulacak ilk boyutunun Array boyutu.

length2
Int32

Oluşturulacak öğesinin ikinci boyutunun Array boyutu.

length3
Int32

Oluşturulacak öğesinin üçüncü boyutunun Array boyutu.

Döndürülenler

Sıfır tabanlı dizinleme kullanılarak her boyut için belirtilen uzunlukla belirtilen yeni üç boyutlu ArrayType .

Özel durumlar

elementType, null değeridir.

elementType geçerli Typebir değil.

elementType Desteklenmez. Örneğin, Void desteklenmez.

-veya-

elementType açık bir genel türdür.

length1, sıfırdan küçüktür.

-veya-

length2, sıfırdan küçüktür.

-veya-

length3, sıfırdan küçüktür.

Örnekler

Aşağıdaki kod örneği, üç boyutlu Arraybir oluşturma ve başlatma işlemini gösterir.

C#
using System;
public class SamplesArray2  {

   public static void Main()  {

      // Creates and initializes a three-dimensional Array of type Object.
      Array my3DArray=Array.CreateInstance( typeof(Object), 2, 3, 4 );
      for ( int i = my3DArray.GetLowerBound(0); i <= my3DArray.GetUpperBound(0); i++ )
         for ( int j = my3DArray.GetLowerBound(1); j <= my3DArray.GetUpperBound(1); j++ )
            for ( int k = my3DArray.GetLowerBound(2); k <= my3DArray.GetUpperBound(2); k++ )
               my3DArray.SetValue( "abc" + i + j + k, i, j, k );

      // Displays the values of the Array.
      Console.WriteLine( "The three-dimensional Array contains the following values:" );
      PrintValues( my3DArray );
   }

   public static 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 three-dimensional Array contains the following values:
    abc000    abc001    abc002    abc003
    abc010    abc011    abc012    abc013
    abc020    abc021    abc022    abc023
    abc100    abc101    abc102    abc103
    abc110    abc111    abc112    abc113
    abc120    abc121    abc122    abc123
*/

Açıklamalar

Çoğu sınıftan CreateInstance farklı olarak, Array geç bağlı erişime izin vermek için ortak oluşturucular yerine yöntemini sağlar.

Başvuru türü öğeleri olarak nullbaşlatılır. Değer türü öğeleri sıfır olarak başlatılır.

Bu yöntem, , length2ve length3ürününün length1olduğu n bir O(n) işlemidir.

F# dilinde bunun yerine Array3D.zeroCreate işlevi kullanılabilir.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1