如何获取原语数组的引用类型变量

本文关键字:数组 引用 类型变量 原语 何获取 获取 | 更新日期: 2023-09-27 18:11:26

所以我的问题可以用简单的代码来描述:

        double[] doubles = new double[]  { 0.01, 0.01, };
        var w2 = doubles;
        w2 = null;
        //doubles still has values

我知道结构和类的区别:

如果将对象复制到新变量中:点p2 = p1;形式f2 = f1;P2作为一个结构体,成为p1的独立副本,具有自己单独的字段。但在f2的情况下,我们复制的只是一个引用,结果是f1和f2都指向同一个对象。

(来源:http://www.albahari.com/valuevsreftypes.aspx)

,但有没有任何方法获得引用类型,让我设置w2为null通过设置double =null不使用转换到List<double>, unsafe{} ?

如何获取原语数组的引用类型变量

我假设你实际上并不意味着doublesw2将在相同的范围内。我猜你正在传递doubles到其他范围,你想传递引用而不是副本,这样你就可以从其他上下文中修改doubles ?

double[] doubles = new double[] { 1, 2, 3}; 
SomeMethod(ref doubles);

// This will return true
Console.WriteLine(doubles == null);

private static void SomeMethod(ref double[] w2)
{
    w2 = null;
}

不完全确定你想要什么,但如果你想通过编程获得w2的类型,那么就这样做:

Type w2_type = w2.GetType();

您可以将w2_type添加到监视列表中,它的值应该为"{System. properties"。双[]}"