我正在使用以下命令从电子表格中提取单元格Interopt.Excel
API。当我打电话时:
object[,] rangeValues = (object[,])range.get_Value(XlRangeValueDataType.xlRangeValueDefault);
并设置断点并检查rangeValues
,我看到以 [1,1]“foo”、[1,2]“bar”等开头的元素。
但是,如果我这样做string[,] test = new string[2, 2] { { "one", "two" }, { "three", "four" } };
元素从 [0,0] 开始。 Excel API 如何构造带有空元素的多维数组?我尝试添加 null 但您仍然有一个 [0,0] 条目。他们的目标并没有表明这一点。
CLR 支持非零基数组。它们令人困惑并且应该避免。我相信,COM 互操作编组器可以创建它们。
http://msdn.microsoft.com/en-us/magazine/cc301755.aspx http://msdn.microsoft.com/en-us/magazine/cc301755.aspx
公共语言规范 (CLS) 合规性要求所有
数组从零开始。这允许用 C# 编写的方法创建
数组并将数组的引用传递给另一个中编写的代码
语言,例如 Visual Basic®。此外,由于从零开始的数组
是迄今为止最常见的,微软花了很多时间
优化他们的表现。但是,CLR 确实支持
非从零开始的数组,但不鼓励使用它们。对于那些
不关心性能和跨语言可移植性,我会
稍后将演示如何创建和使用非从零开始的数组
部分。
这是我第一次在现实世界的代码中看到它。
显然,多维数组无论是否从零开始,都具有相同的类型。单维的有不同的类型。这是有道理的,因为如果它们具有相同的类型,那么 JIT 总是必须为一般情况生成缓慢的代码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)