C# 代码错误,未将对象引用设置到对象的实例

private void btnSend_Click(object sender, EventArgs e)
{
if (cbTimeSend.Checked)
{
tmSend.Enabled = true;
}
else
{
tmSend.Enabled = false;
}

        if (!sp1.IsOpen) //如果没打开
        {
            MessageBox.Show("请先打开串口!", "Error");
            return;
        }
       // string strSend = null;
        String strSend = txtSend.Text.ToString();

            if (radio1.Checked == true) //“HEX发送” 按钮 
            {
                //处理数字转换
                string sendBuf = strSend;
                string sendnoNull = sendBuf.Trim();
                string sendNOComma = sendnoNull.Replace(',', ' ');    //去掉英文逗号
                string sendNOComma1 = sendNOComma.Replace(',', ' '); //去掉中文逗号
                string strSendNoComma2 = sendNOComma1.Replace("0x", "");   //去掉0x
                strSendNoComma2.Replace("0X", "");   //去掉0X
                string[] strArray = strSendNoComma2.Split(' ');

                int byteBufferLength = strArray.Length;
                for (int i = 0; i < strArray.Length; i++)
                {
                    if (strArray[i] == "")
                    {
                        byteBufferLength--;
                    }
                }
                // int temp = 0;
                byte[] byteBuffer = new byte[byteBufferLength];
                int ii = 0;
                for (int i = 0; i < strArray.Length; i++)        //对获取的字符做相加运算
                {

                    Byte[] bytesOfStr = Encoding.Default.GetBytes(strArray[i]);

                    int decNum = 0;
                    if (strArray[i] == "")
                    {
                        //ii--;     //加上此句是错误的,下面的continue以延缓了一个ii,不与i同步
                        continue;
                    }
                    else
                    {
                        decNum = Convert.ToInt32(strArray[i], 16); //atrArray[i] == 12时,temp == 18 
                    }

                    try    //防止输错,使其只能输入一个字节的字符
                    {
                        byteBuffer[ii] = Convert.ToByte(decNum);
                    }
                    catch (System.Exception ex)
                    {
                        MessageBox.Show("字节越界,请逐个字节输入!", "Error");
                        tmSend.Enabled = false;
                        return;
                    }

                    ii++;
                }
                sp1.Write(byteBuffer, 0, byteBuffer.Length);
            }
            else        //以字符串形式发送时 
            {
                sp1.WriteLine(txtSend.Text);    //写入数据
            }

    }

void sp1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
//输出当前时间
DateTime dt = DateTime.Now;
txtReceive.Text += dt.GetDateTimeFormats('f')[0].ToString() + "\r\n";
txtReceive.SelectAll();
txtReceive.SelectionColor = Color.Blue; //改变字体的颜色
try
{
byte[] receivedData = new byte[sp1.BytesToRead]; //创建接收字节数组
sp1.Read(receivedData, 0, receivedData.Length); //读取数据
if (receivedData.Length == 0)
return;
sp1.DiscardInBuffer(); //清空SerialPort控件的Buffer
if (receivedData.Length == 3 && receivedData[0] == 0xFF && receivedData[1] == _totalBytes[1] &&
receivedData[2] == 0x00)

            {
                //_totalBytes[1] = Convert.ToByte(_totalBytes[1] == 0xB5 ? 0xB6 : 0xB5);
                _totalBytes[1] = Convert.ToByte(_totalBytes[1] == 0xB6 ? 0xB5 : 0xB6);
                //_size += _totalBytes[1] == 0xB5 ? 512 : 0;
                _size += _totalBytes[1] == 0xB6 ? 512 : 0;
                SendBytes(false);
            }
            else
            {
                //发送失败
            }
            string strRcv = null;
            if (rdSendStr.Checked)
            {
                strRcv = sp1.Encoding.GetString(receivedData);
            }
            else
            {
                //int decNum = 0;//存储十进制
                for (int i = 0; i < receivedData.Length; i++) //窗体显示
                {

                    strRcv += receivedData[i].ToString("X2");  //16进制显示
                }
            }
            txtReceive.Text += strRcv + "\r\n";
        }
        catch (System.Exception ex)
        {
            MessageBox.Show(ex.Message, "出错提示");
            txtSend.Text = "";
        }
    }
 串口发送一段指定的字符串,串口接收,串口收到回复消息,提示出错。未将对象引用设置到对象的实例

图片说明





c#
0

17个回答

判断条件改为:
if(treeView1.SelectedNode==null || treeView1.SelectedNode.Tag ==null)
{

//……
}
原因:
SelectedNode 有可能为空值

0

出这个问题的原因是你有对象没有赋值就去引用里面的方法或者对象了啊

0
ccc9149
未知昵称 具体是哪一句代码呢?
一年多之前 回复

你打个断点跑程序很容易就发现了,进去看

0
ccc9149
未知昵称 我知道是那一句出错了 但是不知道怎么修改正确?
一年多之前 回复

别用try catch 看看到底哪里出问题了

0
qq_38204686
das白 try catch会把出错的问题覆盖掉 (主要是你用的不好) 不要加try catch报错会更具体 或者设置断点调试 看到哪一步有问题
一年多之前 回复
ccc9149
未知昵称 是catch那里出错了 但是不知道怎么修改?
一年多之前 回复

串口发送一段指定的字符串,串口接收,串口收到回复消息,提示出错。未将对象引用设置到对象的实例

0

判断条件改为:
if(treeView1.SelectedNode==null || treeView1.SelectedNode.Tag ==null)
{

//……
}
原因:
SelectedNode 有可能为空值

0

你去打个断点,进行调适,进入调适模式看一下哪里出错了

0
ccc9149
未知昵称 知道哪里出错,就是catch那一段 但是不知道怎么修改?
一年多之前 回复

判断条件改为:
if(treeView1.SelectedNode==null || treeView1.SelectedNode.Tag ==null)
{

//……
}
原因:
SelectedNode 有可能为空值

0

SelectedNode 有可能为空值

0

判断条件改为:
if(treeView1.SelectedNode==null || treeView1.SelectedNode.Tag ==null)
{

//……
}
原因:
SelectedNode 有可能为空值

0
共17条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
【C#】错误“System.NullReferenceException:未将对象引用设置到对象的实例“解析
错误原因分析   首先,你要知道,在.net里面所有操作的变量都是对象。   一般的标示符,如int,string,char等等,最后都会转换为System命名空间下面的类名(如Int32,String,Char等等),当然类实例化的就更不用说了。对象就必然存在若干的属性和方法。你要操作一个对象,也必然是操作它的属性或者方法。   “未将对象引用设置到对象的实例”,也就是说你要调用对象实例里
未将对象引用设置到对象的实例--可能出现的问题总结
1、ViewState 对象为Null。 2、DateSet 空。 3、sql语句或Datebase的原因导致DataReader空。 4、声明字符串变量时未赋空值就应用变量。 5、未用new初始化对象。 6、Session对象为空。 7、对控件赋文本值时,值不存在。 8、使用Request.QueryString()时,所获取的对象不存在,或在值为空时未赋初始值。 9、使用FindControl时,控件不存在却没有做预处理。 10、重复定义造成未将对象引用设置到对象的实例错误.
C# 未将对象引用设置到对象的实例、未经处理的异常报错。
最近在进行上位机开发过程中遇到无法将对象引用设置到对象实例的问题,在网上查找资料后。 总结如下,为方便个人记忆与理解。 _PLC = new PLC(&quot;192.168.1.105&quot;, 8501); _PLC.Connect(); 将对象在前面定义初始化,通信链接后,在main window中报错。 微软MSDN上大神的解答是Invoke函数使用错误,修改Invoke函数,查看。...
C# System.NullReferenceException: 未将对象引用设置到对象的实例
使用ExecuteScalar(sql,entity,tran)添加数据时,数据表中必须要有自增长的id字段,不然会报错 System.NullReferenceException: 未将对象引用设置到对象的实例 第一次做C#项目遇上这个错误,和同学调试了一天,心累……
C#“未将对象引用设置到对象的实例”
解决办法:将sql语句改为: “select count(*) forom t_user where username=’”+name+”’” 即可。原因分析:   出现这个错误的原因,是因为定义的对象“o”没有实例,它的引用为“null”,错误的原因是sql语句,它执行返回的是结果集中的第一行第一列,想一下如果没有查到记录,该语句返回的是什么,是“null”,所以才会报这样的错误。1.VS
未将对象引用设置到对象的实例(C#出現的錯誤)
"未将对象引用设置到对象的实例"錯誤個人總結
C#问题:System.NullReferenceException:未将对象引用设置到对象的实例
遇到过好多次了,c#上是小鸟向中鸟进阶阶段,这个小问题绝对不放过! 出现它是由于引用的对象是null或empty导致 声明变量时:(T表示类) T a = null; 此时在栈上有一个地址。地址占4个字节,但地址没有任何指向,即指向内容为空 如果调用T的成员函数,出错:未将对象引用设置到对象实例 参考链接:https://www.cnblogs.com/cyq1162/archive/...
C#中 GenerateResource”任务意外失败。 System.NullReferenceException: 未将对象引用设置到对象的实例。
在用VS开发C#项目时,将项目从一台电脑拷贝到另一台电脑时,当生成解决方案时,会出现下面的错误。 —— 已启动生成: 项目: XXX.Login, 配置: Debug Any CPU —— error MSB4018:“GenerateResource”任务意外失败。 error MSB4018: System.NullReferenceException: 未将对象引用设置到对象的实例。
Message=未将对象引用设置到对象的实例。这个要怎么解决?
发生了 System.TypeInitializationException HResult=-2146233036 Message=“FORM_DEMO.DBHelper”的类型初始值设定项引发异常。 Source=KLF TypeName=FORM_DEMO.DBHelper StackTrace: 在 FORM_DEMO.DBHelper.ExecuteReader(String cmdTe...
未处理 NullReferenceException 未将对象引用设置到对象的实例
原因: 调用了a.shuxing1 = bianliang1; 但是呢,这个a其实是一个null 所以就出错了 解决办法(确保a不为null): 先ClassA a = new ClassA(); 再a.shuxing1 = bianliang1;  ...
c# 未将对象引用设置到对象的实例中
相信这个问题每个c#编程的都会遇见过,很常见,但是对于初学者肯定是一头雾水,一脸懵逼,对象引用?对象实例?什么鬼,首先解释下这里面的名词,对象,大家都知道吧,就是女朋友,以后可能会成为老婆的人,哈哈,小编还没对象,看到对象就想老婆了,作为一个非专业的编程人员,原谅我我对其的最初误解吧。面向对象编程是对以往面向过程编程的改进(发明面向对象编程的人说的,我可没说),把一些有共同属性,行为的事物抽象为一...
解决“c#:未将对象引用设置到对象的实例”
在用c#操作数据库的时候遇到了该问题,由此记录一下解决方法: 调试的时候无法连接到数据库,提示“未将对象引用设置到对象的实例”。我查看我的代码,本来想的是“没问题啊,明明已经将数据库连接语句实例化了”。知道后来我单步调试查看变量的值,才发现了问题所在: 看到了没,有两个mysqcon,继续调试,发现: 一个被赋值了,即实例化,而另一个,仍旧为空。说明我的代码里有两个mysqlcon。再来看看...
c#:未将对象引用设置到对象的实例--可能出现的问题总结
  例子1      public int RunProc(string procName, string set, string opt)         {             this.Open();//打开数据库连接             procName = string.Format(procName, set, opt);             OracleCommand c...
C# 未将对象引用设置到对象的实例
C#中报: 未将对象引用设置到对象的实例这个错误一般都是对象为null产生的,下面几个简单的例子: protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { //string str1 = "";
未将对象引用设置到对象的实例--牛腩新闻发布系统
前言 今天小编在做牛腩新闻发布系统的前台的时候遇到一个错,自己解决无果后,在小伙伴的帮助下,成功解决,且听小编娓娓道来。 内容 错误: 出现错误“未将对象引用设置到对象的实例”,如下图: 解决: 将上图红框中的IReadOnlySessionState改为IRequiresSessionState。 补充知识: Aspx:Web窗体设计页面,p指page Ascx: a...
Server.MapPath报“未将对象引用设置到对象的实例”错误解决
最近写代码的时候要用到以前的人已经写好的helper类去将datatable数据导出到excel,原本这个方法是没有问题的,我也曾经多次调用该方法,没有任何问题出现。直到这次我需要定时调用helper类让它生成excel,结果第一次运行就报“未将对象引用设置到对象的实例”的错误,经过多次排查发现问题出现在Server.MapPath身上,正常来说它可以取到网站的根目录,但这次却未取到任何值,经过谷...
ASP.NET异常 System.NullReferenceException: 未将对象引用设置到对象的实例
报错情况如下: 本人菜鸟,请前辈指点,谢谢!
未将对象引用设置到对象的实例
起因:文件中的类都不能进行设计,因此未能为该文件显示设计器。设计器检查出文件中有以下类: FormMain --- 未能加载基类“WinForm.Win.FormsBase.FormMainBase”。请确保已引用该程序集并已生成所有项目我用了一个小时找百度。这个的解决方法,就是将你删除过的一个窗体,再添加上就好了。。。。有点生气的。。然后出现了:未将对象引用设置到对象的实例的问题这个问题的解决方...
C# Session 未对对象引用到实例
问题描述: 在filter 中对session 进行赋值时报的错误“”未对对象引用到实例“” 解决方案: 在Global.asax 中加入以下代码即可 public override void Init() { PostAuthenticateRequest += MvcApplication_PostAuthenticateReques
Api:无法检索元数据,mvc:未将对象引用设置到对象的实例
** 原因: ** 在CodeFirst的时候,对于一对一的关系,如果在两个Entity中都互相添加了对方作为导航属性就会出现这样的错误。新建ApiController的时候提示“无法检索元数据”,新建MVCController的时候回提示“未将对象引用设置到对象的实例” 解决方案:删掉其中的一个导航属性 Solution 错误:生成的Api...
vs上正常,iis上出现未将对象引用设置到对象的实例
vs上正常,iis上出现未将对象引用设置到对象的实例   1,遇到这样的问题 首先是你代码没有问题 2,问题很可能是  发布的时候 文件丢失  3,把vs 里的bin 文件的 dll copy 到  发布目录下 运行就会有详细报错啦
C# 使用 List 异常:未将对象引用设置到对象的实例 问题解决
一 现象   程序运行多次,会出现异常:未将对象引用设置到对象的实例二 问题代码List&amp;lt;string&amp;gt; list = null; try { int xx = list.Count; list=getList();//给list赋值方法 fo...
在发布程序时重新编译,报错“未将对象引用设置到对象的实例”的错误
验证完成那写的是 成功0个,失败1个……错误信息提示:未将对象引用设置到对象的实例原因:在IIS中没有设置“默认文档”;提示:一个应用程序,新建一个应用程序池。
NPOI导入数据时报错“未将对象引用设置到对象的实例”,解决方案
传值得时候,导入的数据里有为空的单元格,然后前面没有加判断什么的,所以后面会报错。 解决方案就是判断咯~(ExcelMapper里面加个int变量IsNUll,以及构造,默认为0;然后创建的时候必填项就给IsNUll值1,然后调用页面得到isNUll,赋给当前页面的变量),下面就贴代码,先图后文字。完美解决  foreach (ExcelMapper item in mappers)    
C# Linq 未将对象引用设置到对象的实例
在C# + MVC项目中用LINQ 操作数据库,提示 未将对象引用设置到对象的实例 调查发现是 查询的字段存在 NUll 值我们需要先设置该字段  != null 在进行 == 、 contains 等操作 不然就会报 未将对象引用设置到对象的实例
VS2015一新建项目就出现未将对象引用设置到对象的实例怎么办?
在控制面板-卸载或修复程序太麻烦,而且不一定保证解决,可以这样------打开--C:\Users\用户名\AppData\Local\Microsoft\VisualStudio\,然后把文件全部删了,再打开vs就恢复默认配置了,重新设置就ok消息太普通了,无法判断来源。因为各种扩展都可以往新项目向导里面加东西,所以没说是新建什么项目也不好判断。靠谱的方式还是往visual studio上挂调试...
C# Server.MapPath 未将对象引用设置到对象的实例
略略略
VS2013 新建工程 出现错误 “未将对象引用设置到对象的实例”
现象通过visio studio 新建 MVC4 工程在接下的对话框中选择 “基本”模板,视图引擎 选择“Razor”在工程生成的最后,出现错误弹窗,提示“未将对象引用设置到对象的实例”测试1,在上述工程中添加新的控制器以及对应视图,工程能够正常运行;2,通过aspx 视图引擎建立的工程,也能够正常运行解决过程1,考虑到机器曾经安装过visio studio2015 与 visio studio2...
c#System.NullReferenceException:“未将对象引用设置到对象的实例。”
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.W...
c# list System.NullReferenceException未将对象引用设置到对象的实例
没有对list对象实例化 if (itemlist == null) itemlist = new List();
lambda_method报错NullReferenceException: 未将对象引用设置到对象的实例
lambda_method报错:NullReferenceException 原来匿名变量的属性表达,就是lambda表达。由于匿名变量为null,属性不存在,所以这样去获取时会报这个错误。
【DEBUG笔记】VS2015新建Xamarin安卓空项目时报错“未将对象引用设置到对象的实例”
问题描述:安装Xamarin后,启动Visual Studio 2015,新建Android空应用,报错“未将对象引用设置到对象的实例”。解决方法:Windows目录下启动Android Studio&amp;gt;&amp;gt;Tools&amp;gt;&amp;gt;Android&amp;gt;&amp;gt;SDK Manager&amp;gt;&amp;gt;更新SDK。...
c#调用C++ dll 报未将对象引用到设置对象的实例 的解决方案
c# 调用 C++ dll 第一次调用的时候,可以正常加载,正常返回,多次调用之后在执行完 sendMessage(b); 之后,就会报 未将对象引用到设置对象的实例,代码如下: using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices;
NPOI导出excel表格某些单元格或者列报未将对象引用设置到对象的实例
如题问题。作为一个新手实在很费解为什么会存在这种问题。百度了半天,所有人的回答都是帮你分析错误,但是大部分都是一些人指点江山的样子但是就是没有给你解决方案,估计混分狗吧。 不过还是有些良心麻油愿意分享他们的知识的。在这些的解决方案里我总结一下: 第一:模板用错了(本人就是这种情况,但是打死不去检查感觉自己就是没写错) 第二:当前行或者列不存在(这种人就是脑残,比如说我第八列第十列都没有报错,
ashx中应用HttpContext.Current.Session ,呈现未将对象引用设置到实例上
解决办法: 1.引用using System.Web.SessionState; 2.在aspx类实现IReadOnlySessionState接口。如:public class {ClassName}: IHttpHandler, IReadOnlySessionState{…} 原因: “IReadOnlySessionState”,指定目标HTTP处理惩罚法度只须要具有对话接见状况值的读接见
httpPost一直 500,未将对象引用设置到对象的实例
string xmlns="http://www.baitour.com/ ">&lt;ORDER_RETURNOUT_RS&gt;&lt;Error Code="11500000"&gt;11500000 Check UserInfo Error!未将对象引用设置到对象的实例。&lt;/Error&gt;&lt;/ORDER_RETURNOUT_RS&gt; 一直请求不成功,但是浏览器测试
本地报表处理期间出错。尚未制定报表“Report1”的报表定义未将对象引用设置到对象的实例
本地报表处理期间出错。尚未制定报表“Report1”的报表定义未将对象引用设置到对象的实例。出现这个错误首先可以看看是不是路径错误。   reportViewer.LocalReport.ReportEmbeddedResource = "Report1.rdlc"; 改为,  reportViewer.LocalReport.ReportEmbeddedResource = "UI.Rep
FineUi 表格控件 [NullReferenceException: 未将对象引用设置到对象的实例错误
利用fineUi构建分页表格时候,报错: [NullReferenceException: 未将对象引用设置到对象的实例。] FineUI.Grid.AddClientSuitableFormatValues(Nullable`1& renderAsJArray, JObject jo, String name, Object[] values) +34 FineUI.Grid.get_
C#窗体设计调试出现的问题:未将对象引用设置到对象的实例。(分层实现修改密码时)
Visual Studio(C#)分层修改密码时业务逻辑层提示如下问题: 解决过程:(没地方下手修改) 在调试的窗口提示有问题的代码那里,鼠标移过去查看代码句左右是否有值传入。然后发现新密码没有传入到用户的相应属性。 然后一层层查看是哪里出现了问题,然后发现是修改密码的父窗体中少了一句代码(没有实例化用户,并赋予本窗体的相应成员)。这种情况不会有提示代码错误,需要自己去发现。 ...
C# winform界面在线程中使用委托不断刷新界面 异常 使用委托{"未将对象引用设置到对象的实例。"}
解决方法: 在线程不断刷新的控件中添加一下代码             this.SetStyle(ControlStyles.UserPaint, true);             this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true);             this.SetStyle(ControlStyles.AllP