日期:2014-05-18  浏览次数:20717 次

object[]怎么转fileInfo[]?
System.IO.FileInfo[]   files=new   System.IO.FileInfo   [0];
……
object[]   obj   =   files;
ArrayMethod.Upset(ref   obj);//打乱数组,其参数是object[]。
files   =(System   .IO   .FileInfo[])   obj;

在最后一句,转换出错了:无法将类型为“System.Object[]”的对象强制转换为类型“System.IO.FileInfo[]”。中断的时候我看了啊,obj里的数据也是正确的啊,两者维数也相同。
这怎么办啊?


------解决方案--------------------
try ->

Array.Copy(obj, files, obj.Length);
------解决方案--------------------
ArrayMethod.Upset设计成
ArrayMethod.Upset(object[])这种形式
然后直接ArrayMethod.Upset(files)也可以
或者按楼上的方法数字拷贝。

直接files =(System .IO .FileInfo[]) obj;是肯定不行的
因为编译器无法确定obj中是值类型还是引用类型