首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >C#报错——传递数组对象报错“未将对象引用设置到对象的实例”

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

作者头像
vv彭
发布2021-03-07 10:51:36
发布2021-03-07 10:51:36
2.6K0
举报
文章被收录于专栏:c#学习笔记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];

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-02-25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档