• 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];

  • 相关阅读:
    Quartz.net
    Perfview 分析进程性能
    windbg 分析cpu异常
    ansible-vault 教程
    ansible 自动化运维(2)
    简单生成随机测试数据
    基于 RabbitMQ-EasyNetQ 实现.NET与Go的消息调度交互
    自绘 TreeDataView 控件
    C# 创建音频WAVE文件头信息(*.wav)
    C# GOF 23种设计模式 学习Log【更新中】
  • 原文地址:https://www.cnblogs.com/eve612/p/14445342.html
Copyright © 2020-2023  润新知