一个很奇怪很奇怪的问题

ghosthjt 2004-09-29 10:28:19
public class test
{
public InsClass Ins=new InsClass ();
public class InsClass
{
public class SelectedInClass
{
public string InNum;
public int Left;
}
int Count=0;
SelectedInClass CurIn=new SelectedInClass();
public SelectedInClass [] SIn=new SelectedInClass[3];
public InsClass()
{
SIn[0].Left=2;//这里发生未外理的"System.NullReferenceException"类型的异常在 ... .exe中.其它信息:未将对像引用设置到对像实例. 错误
SIn[0].InNum="aaa";
}
}
}

--------------------------------------------------------
我就觉得很奇怪,该做的我都做了,怎么还会出现这样的错误呢???

...全文
99 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjy118 2004-09-29
  • 打赏
  • 举报
回复
首先给楼主提点建议,代码写的很不规范啊,无论是练习还是正式写都应该养成好习惯!


问题出在 调用的先后顺序上 ,先调用public SelectedInClass [] SIn=new SelectedInClass[3]; (但是这个过程中没有建立 public class SelectedInClass
)然后才是 public InsClass(),跟踪一下就知道了
ghosthjt 2004-09-29
  • 打赏
  • 举报
回复
学习,学习,大家都有分!
ghosthjt 2004-09-29
  • 打赏
  • 举报
回复
强人,果然是这个的原因,结贴。分全给你,谢谢了!
The123 2004-09-29
  • 打赏
  • 举报
回复
public SelectedInClass [] SIn=new SelectedInClass[3];
->
public SelectedInClass [] SIn=new SelectedInClass[3]{new SelectedInClass(),new SelectedInClass(),new SelectedInClass()};

楼主尽量不要在类里面套着一个类的,然后还在一个类里的构造函数里去处理另一个类里的东西
风格要改变,多留意MSDN里的写作风格

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpconnetframeworkdesignguidelines.asp


gkwww 2004-09-29
  • 打赏
  • 举报
回复

你只初实例化了数组对象,但每个元素对象并没有实例化。如楼上!
thinkingforever 2004-09-29
  • 打赏
  • 举报
回复
public InsClass()
{
SIn[0]=new SelectedInClass ;//加上这句
SIn[0].Left=2
SIn[0].InNum="aaa";
}
thinkingforever 2004-09-29
  • 打赏
  • 举报
回复
不奇怪,SIn是一个SelectedInClass的数组,他其中的每一个成员都是一个SelectedInClass对象,在使用SelectedInClass对象前必须对他实例化.也就是SIn[0]应该是实例化的InsClass对象.
ghosthjt 2004-09-29
  • 打赏
  • 举报
回复
我之前是把public SelectedInClass [] SIn=new SelectedInClass[3];放到
public InsClass(){}里的,但是一样出现这样错误。
penning 2004-09-29
  • 打赏
  • 举报
回复
把public SelectedInClass [] SIn=new SelectedInClass[3];放到
public InsClass(){}里
penning 2004-09-29
  • 打赏
  • 举报
回复
InsClass类构建的第一步就是调用构造函数public InsClass(),此时还没有执行public SelectedInClass [] SIn=new SelectedInClass[3];当然出错了

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧