在C#中,可以使用特殊的方括号语法实例化数组new int[3].这与通过调用构造函数实例化的其他类型不同new List<int>().你能用普通的语法创建一个数组吗?
我试过new System.Array<int>(3)但它爆炸了
非泛型类型'System.Array'不能与类型参数一起使用
System.Array它本身是抽象的,因此您将无法使用其构造函数对其进行实例化.正如你的错误所证明的那样,它实际上也不是通用的; 它只通过在运行时实现泛型集合接口来获取它的类型(另请参见相关答案):
重要
在.NET Framework 2.0版,Array类实现
System.Collections.Generic.IList<T>,System.Collections.Generic.ICollection<T>以及System.Collections.Generic.IEnumerable<T>通用接口.这些实现在运行时提供给数组,因此文档构建工具不可见.
由于上述原因,System.Array该类提供了一种方便的方法CreateInstance(),您可以使用它来代替:
var array = Array.CreateInstance(typeof(int), 3);
Run Code Online (Sandbox Code Playgroud)
备注
与大多数类不同,
Array提供CreateInstance方法而不是公共构造函数,以允许后期绑定访问.
是非常当使用这种方法,不过,作为最终小心array将不会在编译时强类型!如果你想要它是强类型的,你必须在创建它之后将它强制转换(不,只是声明int[] array是不够的):
var array = (int[]) Array.CreateInstance(typeof(int), 3);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1861 次 |
| 最近记录: |