调试了半天,全都是复制代码惹得祸!

简介:

  上次由于一个'\t'让我郁闷了半天,本以为自己已经在debug的时候很小心了,没有想到今天又载了一会。错误非常之低级,而debug费力又还非常之大,真是让人哭笑不得。所以干脆在blog的随笔里专门开辟一个叫"Debug中的滑铁卢"的分类,专门记录Debug时一些stupid的小事。

    其实Coding是挺枯燥的,这个我在说Whidbey的Snippets功能时就说过,而且特别是重复的Coding,更是让人烦躁。但是不管枯燥也好烦躁也罢,还是要写不。这时我们常常也会学学网站编辑,动用动用Ctrl+C & Ctrl+V大法。这不手艺欠佳,今天我就载在这个Ctrl+C、V上了,看来注定当不成网站编辑了(就这追求啊,浪费了我这么多时间看你这么些天瞎摆活了!)。

    今天这个问题其实超级的简单,真是too simple, too young ...,我在GetShowTab()方法前定义了两个方法,我写成这样的:

 DimTreeTab.prototype.ShowMemberTree =  function()
 {
 };

 DimTreeTab.prototype.ShowSearchMember =  function()
 {
 };

 DimTreeTab.prototype.GetShownTab =  function()
 {
      if (  this.m_Panels[0].m_Element.style.display == 'inline' )
     {
          //  . . .
     }
 };

    这时发现这两个函数里面需要用 this.m_Panels[0].m_Element.style.display。好啊,Ctrl+C & Ctrl+V,搞定!

 DimTreeTab.prototype.ShowMemberTree =  function()
 {
     this.m_Panels[0].m_Element.style.display == 'inline' 
     this.m_Panels[0].m_Element.style.display == 'inline' 
 };

 DimTreeTab.prototype.ShowSearchMember =  function()
 {
     this.m_Panels[0].m_Element.style.display == 'inline' 
     this.m_Panels[0].m_Element.style.display == 'inline' 
 };

    改拨改拨,ok了~~

 DimTreeTab.prototype.ShowMemberTree =  function()
 {
     this.m_Panels[0].m_Element.style.display == 'inline' 
     this.m_Panels[ 1].m_Element.style.display == ' none
 };

 DimTreeTab.prototype.ShowSearchMember =  function()
 {
     this.m_Panels[0].m_Element.style.display == ' none
     this.m_Panels[ 1].m_Element.style.display == 'inline' 
 };

    运行起来完全没有效果,由于对DHTML中的element引用关系比较复杂,老是觉得可能是没有引用到正确的element,就在this.m_Panels[n].m_Element里查啊查啊,查到花儿都谢了,还是没有查到问题。最后都调试成这样了:

DimTreeTab.prototype.ShowMemberTree =  function()
{
    alert( this.m_Panels[0].m_Element.outerHTML);
     this.m_Panels[0].m_Element.style.display == 'inline';
    alert( this.m_Panels[0].m_Element.outerHTML);
    alert( this.m_Panels[1].m_Element.outerHTML);    
     this.m_Panels[1].m_Element.style.display == 'none';
    alert( this.m_Panels[1].m_Element.outerHTML);    
};

DimTreeTab.prototype.ShowSearchMember =  function()
{
    alert( this.m_Panels[0].m_Element.outerHTML);
     this.m_Panels[0].m_Element.style.display == 'none';
    alert( this.m_Panels[0].m_Element.outerHTML);
    alert( this.m_Panels[1].m_Element.outerHTML);    
     this.m_Panels[1].m_Element.style.display == 'inline';
    alert( this.m_Panels[1].m_Element.outerHTML);    
};

    才猛然发现,怎么赋值是"=="啊!!!。正确的应该是:

DimTreeTab.prototype.ShowMemberTree =  function()
{
     this.m_Panels[0].m_Element.style.display = 'inline';
     this.m_Panels[1].m_Element.style.display = 'none';
};

DimTreeTab.prototype.ShowSearchMember =  function()
{
     this.m_Panels[0].m_Element.style.display = 'none';
     this.m_Panels[1].m_Element.style.display = 'inline';
};

    可能算不上什么教训,但是还是可以注意几点。Coding的时候,因该:

    打些字;
    查问题先查简单的;
    实在不行了,散散步回来做;
    让team里的哥们给看一下...


本文转自博客园鸟食轩的博客,原文链接:http://www.cnblogs.com/birdshome/,如需转载请自行联系原博主。

目录
相关文章
|
5月前
|
缓存 Java 应用服务中间件
2021年9月28日,老是遇到一些非常奇葩的问题。就离谱、好好的一个web项目就莫名奇妙坏了。
开发者在使用IDEA 2020编辑器搭建的SSM框架图书管理系统中,遇到删除功能异常问题,经过一系列尝试后发现是IDEA编译缓存导致的,最终通过重新编译项目解决了问题。
|
存储 编译器 C语言
还在为每次打开程序的输入烦恼吗,这篇文章让你不在迷茫
在之前我们编写的程序中,我们总要录入一些数据给予程序用于计算,但是当我们退出程序后录入的数据会销毁,因为此时数据都是存放在内存中。等到下次再运行程序时,数据又得从新录入,这样就非常的难受。
74 0
还在为每次打开程序的输入烦恼吗,这篇文章让你不在迷茫
|
8月前
|
移动开发 JavaScript C#
分享53戏源代码总有一个是你想要的(亲测每一个均可用)
分享53戏源代码总有一个是你想要的(亲测每一个均可用)
139 0
|
监控 关系型数据库 MySQL
C#程序发布时,一定要好好地保护,不然你会后悔的
C#程序发布时,一定要好好地保护,不然你会后悔的
104 0
|
搜索推荐 小程序 程序员
看过很多教程,却依然写不好一个程序,怎么破?
最近在和学员的沟通中,发现不少初学者面临这样一个问题:了解了一些基本的语法,看得懂书上的示例,但是面临一个新的编程问题时,依然感到无从下手。
|
SQL 存储 监控
聊聊那些年遇到过的奇葩代码
无论是开发新需求还是维护旧平台,在工作的过程中我们都会接触到各种样式的代码,有时候会碰到一些优秀的代码心中不免肃然起敬,但是更多的时候我们会遇到很多奇葩代码,有的时候骂骂咧咧的吐槽一段奇葩代码后定睛一看作者,居然是几个月以前自己的写的,心中难免浮现曹操的那句名言:不可能,绝对不可能。
聊聊那些年遇到过的奇葩代码
|
存储 机器学习/深度学习 监控
我是傻x,被迫看了 1 天源码,千万别学我!
大家好,我是零一,之前一直很忙,业余时间的输入和输出都 24k铝合金人眼可见 得下降,这不最近上海疫情严重么,算了一下居家办公也已经将近 1个月了,这才有些许时间学习,所以最近也是一直在鼓捣点新东西,不为别的,主要是想再多输入一些新的知识
186 0
我是傻x,被迫看了 1 天源码,千万别学我!
Win系统 - 一键秒关所有程序,霸气侧漏!
Win系统 - 一键秒关所有程序,霸气侧漏!
313 0
Win系统 - 一键秒关所有程序,霸气侧漏!
|
移动开发 小程序 IDE
小程序测试全攻略,还学不会你来找我(含实操代码)
小程序测试全攻略,还学不会你来找我(含实操代码)
562 0
|
编译器 C++
【C/C++教程】关于C/C++那些坑爹的破事儿,你被坑了吗?
今天,就带大家看看C/C++里面究竟有多少不为人知的秘(keng)密(die)吧。可以测试一下,不看答案,自己能get到多少。
139 0
【C/C++教程】关于C/C++那些坑爹的破事儿,你被坑了吗?