锯齿状阵列与阵列数组

app*_*orm -1 c# jagged-arrays

您如何看待它们之间有什么区别?

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

new object[] { new object[] { "1" }, new object[] { "2" }, new object[] { "3" } }
Run Code Online (Sandbox Code Playgroud)

他们唯一的区别我看到的是重载的方法.

static void Arr(object[][] oa)

static void Arr(object[] oa)
Run Code Online (Sandbox Code Playgroud)

也许记忆的效率?

SLa*_*aks 5

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

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

new object[] { DateTime.Now, new object[] { "1" }, new object[] { "2" }, ... }
Run Code Online (Sandbox Code Playgroud)

虽然你不能写

new object[][] { DateTime.Now, new object[] { "1" }, new object[] { "2" }, ... }
Run Code Online (Sandbox Code Playgroud)

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

在实践中,您应该尝试使用最严格的类型来防止您犯错误.
在您的情况下,您应该使用a string[][]来确保您不能放入DateTime.Now内部数组.