【发布时间】:2009-11-24 16:21:02
【问题描述】:
c#中数组和一维数组有什么区别?
【问题讨论】:
-
这就像是在问水果和苹果有什么区别。
-
我想他可能在问
Array digits;和int[] digits;之间的区别 -
Stevo 我认为你的权利,有道理,Marc 对此有很好的解释
c#中数组和一维数组有什么区别?
【问题讨论】:
Array digits;和int[] digits;之间的区别
您的问题到底是什么?请明确说明。现在这里是不同类型的Arrays in C#。
一维数组:
int[] numbers;
多维数组:
string[,] names;
Array-of-arrays(锯齿状):
byte[][] scores;
【讨论】:
int[] 或 int[,] 等数组继承自 Array 作为基类。主要区别在于Array 仅提供非特定访问,而 特定 数组(例如单维数组,SomeType[])通过编译器等。这允许更有效的使用,特别是因为 JIT 可以在许多情况下优化这一点(删除边界检查等)。
Array 很有用 - 尽管老实说这种情况很少见,并且在 2.0 及更高版本中使用泛型,更常见的是Foo<T>(T[])或Foo<T>(IEnumerable<T>)等泛型方法。
【讨论】:
Arrays是C#中各类数组的统称(SingleDimension、Multi-Dimension或Jagged)。
单维数组只是 C# 中的一种特定类型的数组。
【讨论】:
数组可以是多维的,也可以是单维的;一维数组只能是一维的。
如果您想要一个有意义的答案,请提出一个有意义的问题。
如需更多信息,请阅读this article。
您可能想问MDARRAYs 和SZARRAYs 之间的区别是什么(请参阅上面的文章)。
SZARRAYs 是从零开始的一维数组(包括嵌套数组,例如 int[][][][])。运行时经过高度优化,可最大限度地提高 SZARRAYs 的性能。
所有其他数组(非从零开始的数组,C# 不支持,以及多维数组)都是MDARRAYs,没有那么快。
【讨论】:
矩形和正方形的区别。
【讨论】: