C#:Array.CreateInstance:无法将类型为[*]的对象转换为键入[]
发布时间:2020-12-15 04:08:54 所属栏目:百科 来源:网络整理
导读:我想通过调用在c#中创建一个非零下限一维数组 Array.CreateInstance(typeof(int),new int[] { length },new int[] { lower }); 返回的数组的类型不是int [],而是int [*].谁能详细说明这是什么意思?我想要能够将这个数组返回给调用者,例如, int[] GetArray()
我想通过调用在c#中创建一个非零下限一维数组
Array.CreateInstance(typeof(int),new int[] { length },new int[] { lower }); 返回的数组的类型不是int [],而是int [*].谁能详细说明这是什么意思?我想要能够将这个数组返回给调用者,例如, int[] GetArray() { ... } 谢谢. 解决方法
是的,这是一个骗子!
矢量和一维数组之间有区别. int []是一个向量.向量(如int [])必须为0.否则,你必须调用它Array.例如: // and yes,this is doing it the hard way,to show a point... int[] arr1 = (int[]) Array.CreateInstance(typeof(int),length); 或者(指出这还是以零为基础): int[] arr2 = (int[]) Array.CreateInstance(typeof (int),new int[] {length},new int[] {0}); 如果你的数组不能是0,那么抱歉:你必须使用Array,而不是int []: Array arr3 = Array.CreateInstance(typeof(int),new int[] { lower }); 为了使它更加混乱,有以下区别: typeof(int).MakeArrayType() // a vector,aka int[] typeof(int).MakeArrayType(1) // a 1-d array,**not** a vector,aka int[*] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |