英語で読む

次の方法で共有


Array.CreateInstance メソッド

定義

Array クラスの新しいインスタンスを初期化します。

オーバーロード

CreateInstance(Type, Int32)

Type と長さを指定して、0 から始まるインデックス番号を持つ 1 次元の Array を作成します。

CreateInstance(Type, Int32[])

Type と次元の長さを指定して、0 から始まるインデックス番号を持つ多次元の Array を作成します。 次元の長さは、32 ビット整数の配列で指定します。

CreateInstance(Type, Int64[])

Type と次元の長さを指定して、0 から始まるインデックス番号を持つ多次元の Array を作成します。 次元の長さは、64 ビット整数の配列で指定します。

CreateInstance(Type, Int32, Int32)

Type と次元の長さを指定して、0 から始まるインデックス番号を持つ 2 次元の Array を作成します。

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

指定した Type と次元の長さの、指定した下限を持つ多次元の Array を作成します。

CreateInstance(Type, Int32, Int32, Int32)

Type と次元の長さを指定して、0 から始まるインデックス番号を持つ 3 次元の Array を作成します。

CreateInstance(Type, Int32)

ソース:
Array.cs
ソース:
Array.cs
ソース:
Array.cs

Type と長さを指定して、0 から始まるインデックス番号を持つ 1 次元の Array を作成します。

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

パラメーター

elementType
Type

作成する ArrayType

length
Int32

作成する Array のサイズ。

戻り値

長さを指定した、0 から始まるインデックス番号を使用する指定した Type の新しい 1 次元の Array

例外

elementTypenullです。

elementType は有効な Type ではありません。

elementType がサポートされていません。 たとえば、Void はサポートされていません。

- または -

elementType はオープン ジェネリック型です。

length が 0 未満です。

次のコード例は、1 次元 Arrayの を作成して初期化する方法を示しています。

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
*/

注釈

ほとんどのクラスとは異なり、 Array は、遅延バインディング アクセスを許可するために、パブリック コンストラクターではなく メソッドを提供 CreateInstance します。

参照型の要素は に null初期化されます。 値型の要素は 0 に初期化されます。

このメソッドは O(n) 操作です。nlength です。

F# では、 通常、代わりに Array.zeroCreate 関数が使用されます。

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.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[])

ソース:
Array.cs
ソース:
Array.cs
ソース:
Array.cs

Type と次元の長さを指定して、0 から始まるインデックス番号を持つ多次元の Array を作成します。 次元の長さは、32 ビット整数の配列で指定します。

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

パラメーター

elementType
Type

作成する ArrayType

lengths
Int32[]

作成する Array の各次元のサイズを表す 32 ビット整数の配列。

戻り値

各次元が指定した長さで、インデックス番号が 0 から始まる、指定した Type の新しい多次元 Array

例外

elementTypenullです。

または

lengthsnullです。

elementType は有効な Type ではありません。

- または -

lengths 配列に含まれる要素が 1 つ未満です。

elementType がサポートされていません。 たとえば、Void はサポートされていません。

- または -

elementType はオープン ジェネリック型です。

lengths 内の値が 0 未満です。

次のコード例は、多次元 Arrayを作成して初期化する方法を示しています。

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
*/

注釈

ほとんどのクラスとは異なり、 Array は、遅延バインディング アクセスを許可するために、パブリック コンストラクターではなく メソッドを提供 CreateInstance します。

配列内の要素の数は、 lengths 新しい Array内の次元の数と等しい必要があります。 配列の各要素は、 lengths 新しい Array内の対応する次元の長さを指定する必要があります。

参照型の要素は に null初期化されます。 値型の要素は 0 に初期化されます。

このメソッドは O(n) 操作です。ここで n 、 は 内 lengthsのすべての値の積です。

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.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[])

ソース:
Array.cs
ソース:
Array.cs
ソース:
Array.cs

Type と次元の長さを指定して、0 から始まるインデックス番号を持つ多次元の Array を作成します。 次元の長さは、64 ビット整数の配列で指定します。

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

パラメーター

elementType
Type

作成する ArrayType

lengths
Int64[]

作成する Array の各次元のサイズを表す 64 ビット整数の配列。 配列内の各整数は、0 から Int32.MaxValue までの範囲である必要があります。

戻り値

各次元が指定した長さで、インデックス番号が 0 から始まる、指定した Type の新しい多次元 Array

例外

elementTypenullです。

または

lengthsnullです。

elementType は有効な Type ではありません。

- または -

lengths 配列に含まれる要素が 1 つ未満です。

elementType がサポートされていません。 たとえば、Void はサポートされていません。

- または -

elementType はオープン ジェネリック型です。

lengths 値が 0 より小さいか 、Int32.MaxValue より大きい値です。

次のコード例は、多次元 Arrayを作成して初期化する方法を示しています。

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
*/

注釈

ほとんどのクラスとは異なり、 Array は、遅延バインディング アクセスを許可するために、パブリック コンストラクターではなく メソッドを提供 CreateInstance します。

配列内の要素の数は、 lengths 新しい Array内の次元の数と等しい必要があります。 配列の各要素は、 lengths 新しい Array内の対応する次元の長さを指定する必要があります。

参照型の要素は に null初期化されます。 値型の要素は 0 に初期化されます。

このメソッドは O(n) 操作です。ここで n 、 は 内 lengthsのすべての値の積です。

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.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)

ソース:
Array.cs
ソース:
Array.cs
ソース:
Array.cs

Type と次元の長さを指定して、0 から始まるインデックス番号を持つ 2 次元の Array を作成します。

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

パラメーター

elementType
Type

作成する ArrayType

length1
Int32

作成する Array の最初の次元のサイズ。

length2
Int32

作成する Array の 2 番目の次元のサイズ。

戻り値

指定した Type の、次元ごとに指定した長さの、0 から始まるインデックス番号を持つ新しい 2 次元の Array

例外

elementTypenullです。

elementType は有効な Type ではありません。

elementType がサポートされていません。 たとえば、Void はサポートされていません。

- または -

elementType はオープン ジェネリック型です。

length1 が 0 未満です。

または

length2 が 0 未満です。

次のコード例は、2 次元 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
*/

注釈

ほとんどのクラスとは異なり、 Array は、遅延バインディング アクセスを許可するために、パブリック コンストラクターではなく メソッドを提供 CreateInstance します。

参照型の要素は に null初期化されます。 値型の要素は 0 に初期化されます。

このメソッドは O(n) 操作です。ここでn、 は と length2length1積です。

F# では、 代わりに Array2D.zeroCreate 関数を使用できます。

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.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[])

ソース:
Array.cs
ソース:
Array.cs
ソース:
Array.cs

指定した Type と次元の長さの、指定した下限を持つ多次元の Array を作成します。

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

パラメーター

elementType
Type

作成する ArrayType

lengths
Int32[]

作成する Array の各次元のサイズを格納する 1 次元配列。

lowerBounds
Int32[]

作成する Array の各次元の下限 (開始インデックス) を格納する 1 次元配列。

戻り値

次元ごとに指定した長さと下限を持つ、指定した Type の新しい多次元の Array

例外

elementTypenullです。

または

lengthsnull です。

または

lowerBoundsnullです。

elementType は有効な Type ではありません。

- または -

lengths 配列に含まれる要素が 1 つ未満です。

- または -

lengthslowerBounds の配列に含まれている要素の数が異なります。

elementType がサポートされていません。 たとえば、Void はサポートされていません。

- または -

elementType はオープン ジェネリック型です。

lengths 内の値が 0 未満です。

- または -

lowerBounds 値は非常に大きいため、ディメンションの下限と長さの合計が Int32.MaxValue より大きくなります。

次のコード例は、指定した下限を使用して多次元 Array を作成および初期化する方法を示しています。

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
*/

注釈

ほとんどのクラスとは異なり、 Array は、遅延バインディング アクセスを許可するために、パブリック コンストラクターではなく メソッドを提供 CreateInstance します。

lengths配列と lowerBounds 配列には、同じ数の要素が必要です。 配列内の要素の数は、 lengths 新しい Array内の次元の数と等しい必要があります。

配列の各要素は、 lengths 新しい Array内の対応する次元の長さを指定する必要があります。

配列の各要素は、 lowerBounds 新しい Array内の対応する次元の下限を指定する必要があります。 一般に、.NET クラス ライブラリと多くのプログラミング言語では、0 以外の下限は処理されません。

参照型の要素は に null初期化されます。 値型の要素は 0 に初期化されます。

このメソッドは O(n) 操作です。ここで n 、 は 内 lengthsのすべての値の積です。

注意

すべての言語で 0 以外の下限を持つ配列がサポートされているわけではないため、0 以外のインスタンスを言語の配列型にキャスト Array できない場合があります。 たとえば、下限が 6 の 1 次元整数配列を C# の int[] 型にキャストすることはできません。 InvalidCastExceptionこれにより、実行時に "'System.Int32[*]' 型のオブジェクトを 'System.Int32[]' 型にキャストできません"というメッセージが表示されます。アスタリスク (*) は 0 以外のインデックスを意味します。 ただし、 で CreateInstance(Type, Int32[], Int32[]) 作成された任意のランクの 0 から始まる配列を言語の配列にキャストできます。 たとえば、このメソッドで作成された 2 次元の 0 から始まる整数配列を C# の int[,] 型にキャストできます。

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.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)

ソース:
Array.cs
ソース:
Array.cs
ソース:
Array.cs

Type と次元の長さを指定して、0 から始まるインデックス番号を持つ 3 次元の Array を作成します。

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

パラメーター

elementType
Type

作成する ArrayType

length1
Int32

作成する Array の最初の次元のサイズ。

length2
Int32

作成する Array の 2 番目の次元のサイズ。

length3
Int32

作成する Array の 3 番目の次元のサイズ。

戻り値

指定した Type の、次元ごとに指定した長さの、0 から始まるインデックス番号を持つ新しい 3 次元の Array

例外

elementTypenullです。

elementType は有効な Type ではありません。

elementType がサポートされていません。 たとえば、Void はサポートされていません。

- または -

elementType はオープン ジェネリック型です。

length1 が 0 未満です。

または

length2 が 0 未満です。

または

length3 が 0 未満です。

次のコード例は、3 次元 Arrayの を作成して初期化する方法を示しています。

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
*/

注釈

ほとんどのクラスとは異なり、 Array は、遅延バインディング アクセスを許可するために、パブリック コンストラクターではなく メソッドを提供 CreateInstance します。

参照型の要素は に null初期化されます。 値型の要素は 0 に初期化されます。

このメソッドは O(n) 操作です。ここでn、 は 、length2、および length3length1積です。

F# では、 代わりに Array3D.zeroCreate 関数を使用できます。

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.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