晕死了.

z9945 2004-04-21 05:08:32
private 类 名称
方法一
{
名称=NEW 类;
方法二.
方法三.
}
方法二
{
操作 名称//这里没问题
}

方法三
{
操作 名称//这里报错说: 未将对象引用设置到对象的实例。
}

为什么?
...全文
30 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
JasminChen 2004-04-22
  • 打赏
  • 举报
回复
那就先看看MSCommBrooks里有没有名为Input的变量;若有,就再检查看看Input变量里有没有
ToString()这个函数。

z9945 2004-04-21
  • 打赏
  • 举报
回复
救救我!!!!!!!!!!!!!!!!!!!!!!

我把两个函数中的代码全放到一个函数中它居然也出来这个错误提示!!!

我真的搞不懂了.

z9945 2004-04-21
  • 打赏
  • 举报
回复
但是在SSS中实例化的,这有关系吗?
z9945 2004-04-21
  • 打赏
  • 举报
回复
写错了,MSCommBrooks是在CLASS CCJ中声明的,不是在SSS中.

public class Ccj
{
private MSComm MSCommBrooks;
private void sss()
{
MSCommBrooks=new MSCommLib.MSCommClass();

SendBrooksCMD(SourceAddr,DestAddr);

System.Threading.Thread.Sleep(Convert.ToInt32(Delay));
Console.WriteLine("Result:"+getBrooksResult());
}

private void SendBrooksCMD(string aSA,string aDA)
{
string tcmd="";
tcmd=Convert.ToChar(1)+aSA+aDA+Convert.ToChar(2)+"R666"+Convert.ToChar(3);
MSCommBrooks.InputLen=0;////这里没问题
MSCommBrooks.Output=tcmd;
}

private string getBrooksResult()
{
string strBrooks;

strBrooks=MSCommBrooks.Input.ToString();////就这里有问题

Console.WriteLine(strBrooks);
return strBrooks;

}
}
JasminChen 2004-04-21
  • 打赏
  • 举报
回复
如果MSCommBrooks是在sss()里声明的,那么MSCommBrooks仅在sss()函数里有效。
把它的声明语句:MSCommLib.MSCommClass MSCommBrooks 放到sss()外试试。
z9945 2004-04-21
  • 打赏
  • 举报
回复
public class Ccj
{
private MSComm MSCommFLDep;
private void sss()
{
MSCommBrooks=new MSCommLib.MSCommClass();

SendBrooksCMD(SourceAddr,DestAddr);

System.Threading.Thread.Sleep(Convert.ToInt32(Delay));
Console.WriteLine("Result:"+getBrooksResult());
}

private void SendBrooksCMD(string aSA,string aDA)
{
string tcmd="";
tcmd=Convert.ToChar(1)+aSA+aDA+Convert.ToChar(2)+"R666"+Convert.ToChar(3);
MSCommBrooks.InputLen=0;////这里没问题
MSCommBrooks.Output=tcmd;
}

private string getBrooksResult()
{
string strBrooks;

strBrooks=MSCommBrooks.Input.ToString();////就这里有问题

Console.WriteLine(strBrooks);
return strBrooks;

}
}
z9945 2004-04-21
  • 打赏
  • 举报
回复
TO:runnercn()

要是没有初始化的话,在第一个方法里就该出问题,但是为什么在第二个方法里才出问题.
z9945 2004-04-21
  • 打赏
  • 举报
回复
public class Ccj
{

private MSComm MSCommFLDep;
private sss()
{
MSCommBrooks=new MSCommLib.MSCommClass();

SendBrooksCMD(SourceAddr,DestAddr);
System.Threading.Thread.Sleep(Convert.ToInt32(Delay));
Console.WriteLine("Result:"+getBrooksResult(TimeOut));
}

private void SendBrooksCMD(string aSA,string aDA)
{
string tcmd="";
tcmd=Convert.ToChar(1)+aSA+aDA+Convert.ToChar(2)+"R666"+Convert.ToChar(3);
tcmd=tcmd+getBCC(tcmd);
//Console.WriteLine(tcmd);
MSCommBrooks.InputLen=0;
MSCommBrooks.Output=tcmd;
}

private string getBrooksResult()
{
string strBrooks;

strBrooks=MSCommBrooks.Input.ToString();////就这里

Console.WriteLine(strBrooks);
MSCommBrooks.InputLen=0;
return strBrooks;

}
}

以上省掉了一部分
runnercn 2004-04-21
  • 打赏
  • 举报
回复
对象没初始化,记住要在InitialComponent()后面做操作.
zhpsam109 2004-04-21
  • 打赏
  • 举报
回复
看不太懂,还是把你的代码拿出来把!

110,534

社区成员

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

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

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