虽然想要做的事情可能很奇怪,但我需要在.Net中创建一个下限> 0的数组.这开始似乎是可能的,使用:
Array.CreateInstance(typeof(Object), new int[] {2}, new int[] {9});
Run Code Online (Sandbox Code Playgroud)
生成所需的结果(下限设置为9的对象数组).但是,创建的数组实例不能再传Object[]递给其他方法,期望给出一个错误,说明:
System.Object[*]不能铸成一个System.Object[].数组类型有什么不同,我该如何克服这个?
编辑:测试代码=
Object x = Array.CreateInstance(typeof(Object), new int[] {2}, new int[] {9});
Object[] y = (Object[])x;
Run Code Online (Sandbox Code Playgroud)
失败的原因是:"无法将类型为'System.Object [*]'的对象强制转换为'System.Object []'."
我还想指出,这种方法DOES使用多个维度时工作:
Object x = Array.CreateInstance(typeof(Object), new int[] {2,2}, new int[] {9,9});
Object[,] y = (Object[,])x;
Run Code Online (Sandbox Code Playgroud)
哪个工作正常.