初来上班,免不了看别人代码。快速搞懂别人代码是我现在受到的一大挑战。寻摸着规律,发现一边进行调试,一边进行行行注释的逻辑判断不失为一种妙招。

  c#调试用的是vs2012。f11键和f10和f5键的应用,配合着断点加监控很快就会发现除去表面逻辑下的背后运行机制。

   代码不可能没有错误。而自己小白来找前辈的错误很难。就是运行出错,每次调试出现的结果不一,自己抓耳挠腮。知道问题,却不能够找到确切原因。就算找到原因,也没有一个好的办法可以解决。

  先来说调试遇到的疑难杂症:

  1.有时候f11单步调试会发现,不继续往下走,直接c#程序的界面弹出来。

   经验:此方法有错误。例如,窗体的load事件,发现运行不过去的代码句子,直接跳出。解决办法:load里的东西放到构造函数里面,这里面运行会有错误提示。try,catch,抛出异常也不失为一个好的方法。

      和硬件相关。如果没有代码逻辑上的错误之外,看看硬件的具体参考信息。比如刚遇到一个问题就是摄像头的接收问题,通过大量测试经验来看,必须发送一个固定信息,接收语句才可以运行通过,要不然直接跳出。

  2.遇到不明确的对象所属类的时候,可以用控制台输出它所属类。

  错误分析经验之谈:

  1.逻辑归纳。把所有自己目前掌握的信息列出来,问题也明确的写出来。

  2.拿着成功运行的案例和自己失败的案例对比,试着列出原因来。多列几个原因。比如我知道摄像头recivefrom语句有错,且原因是必须send固定信息过去才有回收。原因可能出在send上(send中断或其它),也可能出在recivefrom上(recivefrom线程中断)。而直观上来看,认为receivefrom线程有问题(当然,send中断也导致了recivefrom的中断),丢了send问题原因的一种解释。

  3.试着把部分代码,自己新建一个小程序,单独测一下。也有意想不到的收获。

c#积累之测试的更多相关文章

  1. 架构师Jack专访:全面认识软件测试架构师

    ◇ 测试架构师的职责 测试的职业通道基本是管理线和技术线两条路. 管理线主要的职责:更多是项目管理和资源管理. 技术线主要的职责:更多是技术管理和业务知识. 软件测试架构师更多就是技术线的带头人.管理 ...

  2. 【初学者必读】能让你月薪过万的5大web前端核心技能

    前言Web前端开发所涉及的内容主要包括W3C标准中的结构.行为和表现,那么这三项中我们需要掌握的核心技能是什么呢?看小编来为你揭开谜底的. 1.开发语言 HTML发展历史有二十多年,历经多次版本更新, ...

  3. 软工网络16个人作业2——WordCount

    Deadline: 2018-9-17 22:00PM,以博客提交至班级博客时间为准 要求参考来自:https://www.cnblogs.com/xinz/archive/2011/11/27/22 ...

  4. USTC《现代软件工程》春季学期——第一次个人作业:词频统计

    截止日期 2018年3月29日23:59 要求 1. 对源文件(*.txt,*.cpp,*.h,*.cs,*.html,*.js,*.java,*.py,*.php等,文件夹内的所有文件)统计字符数. ...

  5. 浅谈web前端开发

    我个人认为前端攻城狮其实就是编程技术人员,用一句话来形容“比UI设计懂技术,比技术人员更懂交互”,当然也有人说前端工程师是工程师中的设计师,是设计师中的工程师. 好了废话不多说了,下面进入正题吧!   ...

  6. 【STM32H7教程】第23章 STM32H7的MPU内存保护单元(重要)

    完整教程下载地址:http://forum.armfly.com/forum.php?mod=viewthread&tid=86980 第23章       STM32H7的MPU内存保护单元 ...

  7. test软件工程第三次作业

    零.前言 本次作业要求个人编写程序,截止日期2019年9月25日23:00. 请先阅读<构建之法>第一章至第三章的内容,并在下方作业里体现出阅读后的成果.特别是第2章中的效能分析及个人软件 ...

  8. Web前端开发工程师需要掌握哪些核心技能?

    Web前端开发所涉及的内容主要包括W3C标准中的结构.行为和表现,那么这三项中我们需要掌握的核心技能是什么呢? 1.开发语言 HTML发展历史有二十多年,历经多次版本更新,HTML5和CSS3的出现又 ...

  9. BUAA_2020_OO_第一单元总结

    三次作业,三次成长 第一次作业--幂函数求导总结 作业思路和心得 第一次作业的要求只有x的指数这样的幂函数加减组成表达式,对表达式进行求导,而且没有格式错误的检查,所以难度感觉还不是很高.不过由于我寒 ...

随机推荐

  1. vue 样式渲染,添加删除元素

    <template> <div> <ul> <li v-for="(item,index) in cartoon" :key=" ...

  2. MySQL数据库 : 函数和存储过程

    CONCAT 可以把多个字符串连在一起,如把 doc_id 和 title这两个字段的查询结果组合成一个字符串:SELECT CONCAT(doc_id,title) FROM simhash; CO ...

  3. PHP实现openSug.js参数调试

    这是一款利PHP对百度搜索下拉框提示免费代码实现参数配置调试的程序源代码. 由想要对网站进行搜索下拉调试的站长朋友们进行方便.快速的效果演示,具体参考下面的PHP代码. 如何使用? 请新建一份PHP文 ...

  4. layui sleect获取value值

    <div class="layui-form-item"> <label for="username" class="layui-f ...

  5. Zabbix 3.4.11版本 自定义监控项

    一.实验思路过程 创建项目.触发器.图形,验证监控效果: Template OS Linux 模板基本涵盖了所有系统层面的监控,包括了我们最关注的 几项:ping.load.cpu 使用率.memor ...

  6. Java基础之final和abstract关键字

    final final在Java中是一个保留的关键字,可以声明成员变量.方法.类以及本地变量.一旦你将引用声明作final,你将不能改变这个引用了,编译器会检查代码,如果你试图将变量再次初始化的话,编 ...

  7. 水灾 1000MS 64MB (广搜)

    水灾(sliker.cpp/c/pas) 1000MS  64MB 大雨应经下了几天雨,却还是没有停的样子.土豪CCY刚从外地赚完1e元回来,知道不久除了自己别墅,其他的地方都将会被洪水淹没. CCY ...

  8. Java 快速排序讲解

    快速排序由于排序效率在同为 O(nlogn) 的几种排序方法中效率最高,因此经常被采用.再加上快速排序思想——分治法也确实非常实用,所以 在各大厂的面试习题中,快排总是最耀眼的那个.要是你会的排序算法 ...

  9. 图片文件转换成Base64编码实现ajax提交图片

    //上传头像图片 function uploadHead(imgPath) { console.log("imgPath = " + imgPath); var image = n ...

  10. andriod 学习三 使用android资源

    3.1 android框架中有许多资源,包括布局,字符串,位图,图片....,使用资源之前需要在相应的资源文件中定义资源,然后编译程序时ADT将定义的资源转换成java类并给予唯一的id,而代码中需要 ...