未将对象引用设置到对象的实例
2014-05-19 09:54
225 查看
对象引用没有设置到对象实例的原因很多:
1、如下:
public int Revise(ref int numline, ref int numcircle, ref int numtext,System.IO.StreamWriter str_w, List< string >
record,EXT extend,Line []
lines, Circle[] circles, Text []
texts)
[align=left] {[/align]
string []
record1 =record.ToArray();
for (int i
= 0; i < record1.Length;i++ )
[align=left] {[/align]
string temp
= string .Empty;
[align=left] temp = record1[i];[/align]
if (temp
== "$EXTMIN" )
[align=left] {[/align]
record1[i + 2] = Convert .ToString(extend.Min_x)
;
[align=left] record1[i + 4] = Convert .ToString(extend.Min_y);[/align]
[align=left] record1[i + 6] = Convert .ToString(extend.min_z);[/align]
[align=left] record1[i + 10] = Convert .ToString(extend.Max_x);[/align]
[align=left] record1[i + 12] = Convert .ToString(extend.Max_y);[/align]
[align=left] record1[i + 14] = Convert .ToString(extend.Max_z);[/align]
[align=left] i += 14;[/align]
[align=left] continue ;[/align]
[align=left] }[/align]
if (temp
== "AcDbLine" )
[align=left] {[/align]
[align=left] record1[i + 2]= Convert .ToString(lines[numline].x1);//此处开始报错[/align]
[align=left] record1[i + 4] = Convert .ToString(lines[numline].y1);[/align]
[align=left] record1[i + 6] = Convert .ToString(lines[numline].z1);[/align]
[align=left] record1[i + 8] = Convert .ToString(lines[numline].x2);[/align]
record1[i + 10] = Convert .ToString(lines[numline].y2)
;
[align=left] record1[i + 12] = Convert .ToString(lines[numline].z2);[/align]
[align=left] numline--;[/align]
[align=left] i += 12;[/align]
[align=left] continue ;[/align]
[align=left] }[/align]
[align=left] }[/align]
for (int i
= 0; i < record1.Length;i++ )
[align=left] {[/align]
[align=left] str_w.WriteLine(record1[i]);[/align]
[align=left] }[/align]
[align=left] return 1;[/align]
[align=left] }[/align]
[align=left]其中numline,numcircle,numtext,代表的line,circle,text对象的个数[/align]
[align=left]原因就在于,数组的下标总是比个数小1,假如有5个元素,我们尝试给lines[5]赋值,而lines[5]已经越界,更不可能初始化。[/align]
[align=left]2、对于数组,不光要实例化数组,还要实例化数组的对象[/align]
public int Read_Entities(ref int numpolyline, Polyline []
plines,System.IO. StreamReader str_r)
[align=left] {[/align]
string buff
= string .Empty;
[align=left] buff = str_r.ReadLine();[/align]
//int numline
= 0;
//int numcircle
= 0;
[align=left] //int numtext=0;[/align]
while (buff
!= "OBJECTS" )
[align=left] {[/align]
[align=left] [/align]
if (buff
== "LWPOLYLINE" )
[align=left] {[/align]
while (buff
!= "AcDbPolyline" )
[align=left] {[/align]
[align=left] buff = str_r.ReadLine();[/align]
[align=left] }[/align]
[align=left] plines[numpolyline] = new Polyline ();//(1)[/align]
[align=left] str_r.ReadLine();[/align]
[align=left] plines[numpolyline].pointnum = Convert .ToInt32(str_r.ReadLine());[/align]
[align=left] str_r.ReadLine();[/align]
[align=left] str_r.ReadLine();[/align]
[align=left] str_r.ReadLine();[/align]
[align=left] str_r.ReadLine();[/align]
[align=left] plines[numpolyline].points = new point [plines[numpolyline].pointnum];//(2)[/align]
[align=left] for (int i=0;i<plines[numpolyline].pointnum;i++)[/align]
[align=left] {[/align]
[align=left] plines[numpolyline].points[i] = new point ();//(3)[/align]
[align=left] str_r.ReadLine();[/align]
[align=left] plines[numpolyline].points[i].x = Convert .ToDouble(str_r.ReadLine());[/align]
[align=left] str_r.ReadLine();[/align]
[align=left] plines[numpolyline].points[i].y = Convert .ToDouble(str_r.ReadLine());[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] buff = str_r.ReadLine();[/align]
[align=left] }[/align]
[align=left] return 1;[/align]
[align=left] }[/align]
[align=left]其中,多线由多个点组成[/align]
[align=left]注释(1)处:初始化polyline对象[/align]
[align=left]注释(2)处:初试化point数组[/align]
[align=left]注释(3)处:初始化点对象实例[/align]
[align=left]一直忘记了第二个,导致一直提示错误[/align]
待续。。。
1、如下:
public int Revise(ref int numline, ref int numcircle, ref int numtext,System.IO.StreamWriter str_w, List< string >
record,EXT extend,Line []
lines, Circle[] circles, Text []
texts)
[align=left] {[/align]
string []
record1 =record.ToArray();
for (int i
= 0; i < record1.Length;i++ )
[align=left] {[/align]
string temp
= string .Empty;
[align=left] temp = record1[i];[/align]
if (temp
== "$EXTMIN" )
[align=left] {[/align]
record1[i + 2] = Convert .ToString(extend.Min_x)
;
[align=left] record1[i + 4] = Convert .ToString(extend.Min_y);[/align]
[align=left] record1[i + 6] = Convert .ToString(extend.min_z);[/align]
[align=left] record1[i + 10] = Convert .ToString(extend.Max_x);[/align]
[align=left] record1[i + 12] = Convert .ToString(extend.Max_y);[/align]
[align=left] record1[i + 14] = Convert .ToString(extend.Max_z);[/align]
[align=left] i += 14;[/align]
[align=left] continue ;[/align]
[align=left] }[/align]
if (temp
== "AcDbLine" )
[align=left] {[/align]
[align=left] record1[i + 2]= Convert .ToString(lines[numline].x1);//此处开始报错[/align]
[align=left] record1[i + 4] = Convert .ToString(lines[numline].y1);[/align]
[align=left] record1[i + 6] = Convert .ToString(lines[numline].z1);[/align]
[align=left] record1[i + 8] = Convert .ToString(lines[numline].x2);[/align]
record1[i + 10] = Convert .ToString(lines[numline].y2)
;
[align=left] record1[i + 12] = Convert .ToString(lines[numline].z2);[/align]
[align=left] numline--;[/align]
[align=left] i += 12;[/align]
[align=left] continue ;[/align]
[align=left] }[/align]
[align=left] }[/align]
for (int i
= 0; i < record1.Length;i++ )
[align=left] {[/align]
[align=left] str_w.WriteLine(record1[i]);[/align]
[align=left] }[/align]
[align=left] return 1;[/align]
[align=left] }[/align]
[align=left]其中numline,numcircle,numtext,代表的line,circle,text对象的个数[/align]
[align=left]原因就在于,数组的下标总是比个数小1,假如有5个元素,我们尝试给lines[5]赋值,而lines[5]已经越界,更不可能初始化。[/align]
[align=left]2、对于数组,不光要实例化数组,还要实例化数组的对象[/align]
public int Read_Entities(ref int numpolyline, Polyline []
plines,System.IO. StreamReader str_r)
[align=left] {[/align]
string buff
= string .Empty;
[align=left] buff = str_r.ReadLine();[/align]
//int numline
= 0;
//int numcircle
= 0;
[align=left] //int numtext=0;[/align]
while (buff
!= "OBJECTS" )
[align=left] {[/align]
[align=left] [/align]
if (buff
== "LWPOLYLINE" )
[align=left] {[/align]
while (buff
!= "AcDbPolyline" )
[align=left] {[/align]
[align=left] buff = str_r.ReadLine();[/align]
[align=left] }[/align]
[align=left] plines[numpolyline] = new Polyline ();//(1)[/align]
[align=left] str_r.ReadLine();[/align]
[align=left] plines[numpolyline].pointnum = Convert .ToInt32(str_r.ReadLine());[/align]
[align=left] str_r.ReadLine();[/align]
[align=left] str_r.ReadLine();[/align]
[align=left] str_r.ReadLine();[/align]
[align=left] str_r.ReadLine();[/align]
[align=left] plines[numpolyline].points = new point [plines[numpolyline].pointnum];//(2)[/align]
[align=left] for (int i=0;i<plines[numpolyline].pointnum;i++)[/align]
[align=left] {[/align]
[align=left] plines[numpolyline].points[i] = new point ();//(3)[/align]
[align=left] str_r.ReadLine();[/align]
[align=left] plines[numpolyline].points[i].x = Convert .ToDouble(str_r.ReadLine());[/align]
[align=left] str_r.ReadLine();[/align]
[align=left] plines[numpolyline].points[i].y = Convert .ToDouble(str_r.ReadLine());[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] buff = str_r.ReadLine();[/align]
[align=left] }[/align]
[align=left] return 1;[/align]
[align=left] }[/align]
[align=left]其中,多线由多个点组成[/align]
[align=left]注释(1)处:初始化polyline对象[/align]
[align=left]注释(2)处:初试化point数组[/align]
[align=left]注释(3)处:初始化点对象实例[/align]
[align=left]一直忘记了第二个,导致一直提示错误[/align]
待续。。。
相关文章推荐
- 常见"未将对象引用设置到对象的实例"异常的原因
- 未将对象引用设置到对象的实例
- 未将对象引用设置到对象的实例异常的原因,
- 未将对象引用设置到对象的实例
- url重写(urlrewriter)引起的"未将对象引用设置到对象的实例"错误发生的原因
- 也谈"未将对象引用设置到对象的实例"
- "未将对象引用设置到对象的实例"异常的原因
- 未将对象引用设置到对象的实例
- 重复定义造成未将对象引用设置到对象的实例错误
- session未将对象引用设置到对象的实例
- 错误:System.NullReferenceException: 未将对象引用设置到对象的实例
- 未将对象引用设置到对象的实例异常的原因
- "未将对象引用设置到对象的实例"异常的原因
- 未将对象引用设置到对象的实例--问题记录
- "未将对象引用设置到对象的实例"异常的原因
- 未将对象引用设置到对象的实例
- Ajax.net的未将对象引用设置到对象的实例
- ASP.NET Forum 中禁用含有子版块的版块后产生的"未将对象引用设置到对象的实例"异常的处理方法
- 未将对象引用设置到对象的实例异常的原因
- Asp.net 2.0 中 Cache 丢失的问题:“值不能为空”或“未将对象引用设置到对象的实例”