首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

大家给看看这段程序,多谢了

2013-01-23 
大家给看看这段程序,谢谢了class protocol:IDisposable{private static protocol instance/// summary/

大家给看看这段程序,谢谢了
class protocol:IDisposable
    {
        private static protocol instance;
        /// <summary>
        /// 实例化协议类
        /// </summary>
        /// <returns></returns>
        public protocol()
        {
 
        }
        private string _model;
        /// <summary>
        /// 累加和后的指令属性
        /// </summary>
        /// <returns></returns>
        public string _Model
        {
            get
            {
                return _model;
            }
            set 
            {
                _model = value;
            }
        }
        /// <summary>
        /// 输入一个参数将其进行累加和及异或校验
        /// </summary>
        /// <param name="ls"></param>
        /// <returns></returns>
        private protocol(string ls)
        {
            #region      //生成指令代码
            char[] c_ls = ls.ToCharArray();
            int sum = 0;//累加和
            long xor = 0;//异或
            int model = 0;//取模
            string ls_jy = null;//临时校验参数
            ASCIIEncoding AE1 = new ASCIIEncoding();
            for (int i = 0; i < c_ls.Length; i++)
            {
                byte[] ByteArray1 = AE1.GetBytes(c_ls[i].ToString());
                //打印出ASCII码
                for (int x = 0; x <= ByteArray1.Length - 1; x++)


                {
                    sum += Convert.ToInt32(ByteArray1[x]);//累加和
                }
            }
            model = sum % 256;//取模
            xor = model ^ Convert.ToInt32("87", 16);
            ls_jy = Convert.ToString(xor, 16).ToUpper();
            _Model = "#"
                + ls.ToUpper()
                + (ls_jy.Length < 2 ? "0" + ls_jy : ls_jy)
                + "!";
            #endregion
            //model = (restring.Select(x => (int)x).Aggregate(0, (x, y) => (x + y) % 256) ^ 135).ToString("X").PadLeft(2, '0');
            //_Model = ("#" + restring + model + "!");

        }
        /// <summary>
        /// 返回一个自定义的协议类
        /// </summary>
        /// <param name="ls">参数值</param>
        /// <returns></returns>
        public static protocol Getinstance(string ls)
        {
            if (instance == null)
            {
              instance = new protocol(ls);
              
            }
            else
            {
              instance._Model = null;
              instance = new protocol(ls);
             }
            return instance;

         }

         #region IDisposable 成员

         public void Dispose()
         {
              


         }

         #endregion
     }
上面这段程序  
 string model = protocol.Getinstance(ls_str)._Model;
 spPort.Write(model);//将指令写入串口缓冲区
执行程序时,提示红色部分没有实例化对象,不知道具体是哪里出了问题,高手指点一下 c#
[解决办法]
红色部分加断点,F11进入子函数单步执行看下
[解决办法]
ls_str在哪儿定义和赋值的?
你设断点跟踪一下

热点排行