在电脑前又是一天,后来脑子也糊里糊涂,可能是基础还不牢固,设置断点,找了找问题才发现数组定义出了问题,

我是这样定义数组的,string[] auths ; string auths=new string[]{} 等等

程序第一次报错,未实例化对象,什么情况这是,我以为是写遍历队列的问题,那个队列声明为全局了,后来值也能传给重新定义的测试string 变量,也没问题啊。

再后来才知道未实例化数组,数组也要实例化,以前觉得可以信手哪来就用,在c#上的托管堆上,没有实例化对象是没法用的。实例化数组

string[] auths = new string[5];  //这样写就没问题了

string[] codes= new string[5] { "", "", "", "", "" };   这个是赋值的写法

第二个问题:

因为我要赋值给数组5个数之后,清空数组。

于是我用了这个写法

auths = null;
codes = null;

结果就是第一个问题解决了之后,又出现了未实例化对象的报错,靠,此时脑袋有点不爱动了,后来才慢慢体会到实例化对象的用处

赋值给null之后,等于释放了内存堆的对象,等于new的对象失效了。两个问题叠加在一起,幻觉出现。编程就是这么有趣,同时

也是枯燥,若值不为空的话,还得考虑一次读取队列中5个值,若队列最后不足5个的时候,数组后几位的值肯定是错的,那程序在结尾肯定会出现问题。

于是开始想若数值不足5个的情况怎么处理。

下边程序作为一个记录吧,提醒自己。改天想想如何添加不足5个的情况,总数取余吗,那我的add里边的有好几个参数没有值咋整,可以在add方法里边判断,我的输出pdf一行画 5个图,还得写一行画四个图,一行3个,一行2个,一行1个的程序啊。

string[] auths = new string[5];
string[] codes= new string[5] ;

foreach (FileContent fc in filecontents)
{

kkk=fc.Cardid;
auths[i] = fc.Cardid.ToString();
codes[i] = fc.Autcode;
++i;
if(i==5)
{
cd.Add(new code(codes[0], codes[1], codes[2], codes[3], codes[4], codes[0], codes[1], codes[2], codes[3], codes[4], auths[0], auths[1], auths[2], auths[3], auths[4]));
i = 0;

}

}

C# 一个数组未赋值引发的错误的更多相关文章

  1. C++为什么不可以把一个数组直接赋值给另一个数组

    今天好奇一个问题, int a[3] = {1,2,3]; int b[3]; b=a; 编译器报错, 网上找了一圈, 大概明白: C++就是如此设定的, 数组不能直接赋值, 可以使用std::cop ...

  2. js在ie6下的一个bug—未结束标签的错误

    在IE6下,如果在body标签没结束前,用代码获取body对象就会出现错误.如: <html> <head> <script type="text/javasc ...

  3. python代码位置引发的错误

    觉得python对代码位置的要求简直是变态,缩进引发的错误我以前在博客里讲过了,如果不懂可以看看我以前的博客,今天又遇到了一个代码位置所引发的错误,现在给大家分享一下: 我想要打印出来一个5*5的实心 ...

  4. Error-ASP.NET:由于未能找到 id 为“FileUpload1$gvFiles$ctl02$lnkBtnRemoveFile”的控件或在回发后将同一 ID 分配给另一个控件,导致发生错误。如果未分配 ID,请显式设置引发回发事件的控件的 ID 属性以避免此错误。

    ylbtech-Error-ASP.NET:由于未能找到 id 为“FileUpload1$gvFiles$ctl02$lnkBtnRemoveFile”的控件或在回发后将同一 ID 分配给另一个控件 ...

  5. javascript中把一个数组的内容全部赋值给另外一个数组

    如:var a = [1,2,3,4];var b= [];b = a;这个不是把值赋值过去而是b作为a的引用,b改变的是a如何b指向的是一个新数组,a把元素值全部赋值过去? 1.普通数组可以使用   ...

  6. div里面的元素垂直均匀分布 按钮引发地址栏出现问号 判断一个数组是否为空 div底部居中 路由传参接受参数

    一个固定高度的div的子元素 在垂直 方向上平均分布 .important-dec{ height: 121px; flex-direction: column; display: flex; jus ...

  7. C#实现如何判断一个数组中是否有重复的元素 返回一个数组升序排列后的位置信息--C#程序举例 求生欲很强的数据库 别跟我谈EF抵抗并发,敢问你到底会不会用EntityFramework

    C#实现如何判断一个数组中是否有重复的元素   如何判断一个数组中是否有重复的元素 实现判断数组中是否包含有重复的元素方法 这里用C#代码给出实例 方法一:可以新建一个hashtable利用hasht ...

  8. IIS不定期Crash和Oracle“未处理的内部错误(-2)”的问题分析

    问题描述:系统不定期报出Oracle“未处理的内部错误(-2)”,严重时IIS会Crash 典型异常日志如下: Exception type:   System.AccessViolationExce ...

  9. [C++程序设计]字符数组的赋值与引用

    只能对字符数组的元素赋值,而不能用赋值语句对整个数组赋值. char c[5]; c={′C′,′h′,′i′,′n′,′a′}; //错误,不能对整个数组一次赋值 c[0]=′C′; c[1]=′h ...

随机推荐

  1. beta分布 java代码

    public class BetaDistributionActivity { /** * @param alpha: eg. click * @param beta : eg. pv - click ...

  2. rename批量修改文件并在后缀前加字段

    rename   's/\.jpg$/generate_badu\.jpg/' * 其中,'.'需要加转义斜杠'\',   '*'代表文件夹下所有文件

  3. ValueError: too many values to unpack tensorflow

    使用tensorflow 的时候报错: result ,_= sess.run(ops)ValueError: too many values to unpack 其实是ops里面不止一个,返回解压成 ...

  4. ok6410下的uboot分析与实现

    uboot 由两阶段代码组成: •第一阶段主要步骤: 1.将cpu设置为svc模式 2.关闭mmu 3.设置外设端口地址 4.关闭watchdog 5.关闭中断 6.初始化时钟 7.初始化内存DRAM ...

  5. canvas刮奖

    (function (global, factory) { typeof module === 'object' && typeof module.exports === 'objec ...

  6. python list 常用

    l = [,,,] b = [,,] l.remove() #val del l[] #key new_list = l.extend(b) #[,,,,,,] new_list = l.append ...

  7. 算法之LOWB三人组之插入排序

    插入排序 思想:类似于抽扑克牌,共有8张扑克牌,手里默认有一张,桌面上有7张,我们每次从桌面上抽一张和手里的牌进行比较,如果比手里的牌大,则直接放到手里的牌的后面,如果比手里的牌小,则放到手里的牌的前 ...

  8. C#反射调用其它DLL的委托事件 传值

    C#反射调用其它DLL的委托事件 传值在插件式开发.我们要调用其它插件或模块的委托事件时.那么我们需要通过反射. 复制代码namespace Module2{ /// <summary> ...

  9. 今天设置apache二级域名ssl证书后出现问题

    用集成环境 phpwamp重启服务失败,但是重启电脑后apache就启动成功,也不知道哪里原因,待以后解决.

  10. python 进行机器学习

    summary: 本文总结了几种常见的线性回归的的方式以及各种方式的优缺点. 1,简单现性回归(OSL): OSL:就是一种最为简单的普通最小二乘法的实现,y = a0 + a1*x1 + a2*x2 ...