gpt4 book ai didi

c# - 是否有像 f# 中那样的通用拆箱功能?

转载 作者:行者123 更新时间:2023-11-30 13:22:45 25 4
gpt4 key购买 nike

我正在尝试使用对象处理程序,并且我可以正常工作以将内容放入内存中。但是当我再次查找该对象时,我返回:

object(object[,]) 

object(double[,]) 

如何在 C# 中拆箱?

object(double[,]) boxedobj = ....
double[,] unboxedobj = unbox(boxedobj);

理想情况下,我想以一种通用的方式来做到这一点,这样无论类型是 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;
}

关于c# - 是否有像 f# 中那样的通用拆箱功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19567978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com