我有一个object
通过 COM 互操作调用的参数,传入的对象的类型是System.Byte[*]
,我想把它变成byte[]
; 有没有办法在不复制的情况下做到这一点?
显式转换和as
关键字都失败。奇怪的是,如果我中断我的函数,这两种方法都可以在“立即”窗口中按我想要的方式工作。
public void DoIt(object param) {
var bbuf = param as byte[];
// bbuf is NULL here
bbuf = (byte[])param;
// Throws cast exception
// This works, but I don't want to copy
var abuf = param as Array;
bbuf = new byte[abuf.Length];
abuf.CopyTo(bbuf, 0);
}