• C#报错——传递数组对象报错“未将对象引用设置到对象的实例”


    问题描述:

    定义一个数组作为函数的ref实参,因为要求数组暂时不定长度,所以没有实例化

    如:int[] aaa;

      func(ref aaa); //调用函数

      viod func (ref bbb) //定义函数

      {

        int len = 5;

        for(i = 0; i < len; i ++)

          {

            bbb[i] = i;

          }

      }

    然后就出现这样的报错了 《传递数组对象报错“未将对象引用设置到对象的实例”》

    分析:

    从字面上理解这句话为,传递的数组对象(指的是数组aaa),没有将对象引用(指定的bbb,实际也是aaa本身,因为他们是同一片地址)设置到对象的实例(指的是没有实例化数组)

    因此发现我们自始至终都没有对aaa这片内存实例化

    解决方法:

    既然我们要传一个不定长度的数组,所以我们不能在调用函数前实例化aaa数组,因为实例化了就代表长度定义了,虽然解决了报错,但是到不到我们想要的效果

    那我们可以在函数主体实例化数组bbb,这样就解决了问题

    可以在for循环前实例化数组bbb:bbb = new int[len];

  • 相关阅读:
    HTTP 缓存图解
    http协议构成整理
    HTTP2.0
    Event Loop
    斐波那契数列
    归并排序
    快速排序
    史上最全前端资源
    Js 将 Date 转化为指定格式的String
    vue-cli webpack全局引入jquery
  • 原文地址:https://www.cnblogs.com/eve612/p/14445342.html
Copyright © 2020-2023  润新知