-1

您如何看待它们之间的区别?

new object[][] { new object[] { "1" }, new object[] { "2" }, new object[] { "3" } }

new object[] { new object[] { "1" }, new object[] { "2" }, new object[] { "3" } }

我看到的唯一区别是方法的重载参数。

static void Arr(object[][] oa)

static void Arr(object[] oa)

也许记忆的效率?

4

2 回答 2

5

第一个是类型安全的;第二个不是。

您的两个数组完全相同,只是第二个数组的类型为包含objects,而第一个数组必须包含object[]s(数组)。因此,你可以写

new object[] { DateTime.Now, new object[] { "1" }, new object[] { "2" }, ... }

而你不能写

new object[][] { DateTime.Now, new object[] { "1" }, new object[] { "2" }, ... }

...因为DateTime.Now不是object[].

在实践中,你应该尽量使用限制性最强的类型来防止你犯错误。
在您的情况下,您应该使用 astring[][]来确保您不能放入DateTime.Now内部数组。

于 2011-06-12T21:13:55.303 回答
2

不同之处在于,在第二个示例中,您可以object在数组中拥有类型元素,而在第一个示例中,您可以拥有object[]元素。

于 2011-06-12T21:14:54.697 回答