我正在尝试使用对象处理程序,并且可以很好地将内容放入内存中。但是当我再次查找对象时,我返回:
object(object[,])
要么
object(double[,])
如何在C#中取消装箱?
object(double[,]) boxedobj = ....
double[,] unboxedobj = unbox(boxedobj);
理想情况下,我想以一种通用的方式执行此操作,以使tybe是double []还是double [,]还是object [,]等都没有关系
F#unbox
函数几乎只是强制转换为您指定的任何其他类型。在C#中,可以这样写:
static R Unbox<R>(object anything) {
return (R)anything;
}
因此,在您的情况下,double[,]
您将需要以下内容:
var array = (double[,])boxed;
在大多数情况下,unbox<'R> anything
将转换为使用(R)anything
。其中,这样做的唯一情况不工作,当你在另一个通用的方法,你是两个通用类型间铸造。在这种情况下,您需要object
先进行操作(以确保将值装箱):
static R Unbox<R, T>(T anything) {
return (R)(object)anything;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句