摘要:
Windows 窗体是最常见的托管应用程序之一。 Windows 窗体创建标准的 Windows 应用程序。 你可以完成此演练使用 Visual Basic 中, C#,或 c + +。 首先,您必须关闭任何打开的解决方案。 准备此次演练 如果已打开某个解决方案,请将其关闭。 (在文件菜单中,选择关 阅读全文
随笔档案-2019年02月
Visual Studio的调试技巧
2019-02-28 22:57 by GarfieldEr007, 218 阅读, 收藏, 编辑
摘要:
调试技巧是衡量程序员水平的一个重要指标.掌握好的调试技巧与工具的使用方法,也是非常重要的. 演示环境: VS2017C# 演示用的代码: 基本概念:断点 这是最基本的操作了,想必大伙都会了...我们可以点击编辑器的这个地方:给代码添加一个断点,这样当代码执行到这里的时候就会挂起进程,此时代码会暂停执 阅读全文
【C#】Visual Studio 2017 一边Debug,一边修改代码
2019-02-28 22:52 by GarfieldEr007, 4181 阅读, 收藏, 编辑
摘要:
好久没写C#了,最近在学习著名科学上网工具 shadowsocks-windows 的源代码,想着可以边断点调试,边加上一些注释以方便理解,stackoverflow 和 msdn 随便翻了一下,竟发现了Debug新世界。 一. 原始需求 原始需求是这样,本来我只是希望在断点调试项目的时候,可以增加 阅读全文
C#调试心经
2019-02-28 22:51 by GarfieldEr007, 228 阅读, 收藏, 编辑
摘要:
我们在做程序开发时,难免会遇到错误异常。如何快速地找到出错的地方、分析错误的原因以及找到解决问题的方案,是许多初级程序员困扰的问题,这也正是经验的宝贵之处。下面我将简单介绍在Visual Studio中调试以及一些高级的调试和常见的错误。 PS:如无特别说明Visual Studio均指Dev10即 阅读全文
浅谈尾递归的优化方式
2019-02-18 22:50 by GarfieldEr007, 1446 阅读, 收藏, 编辑
摘要:
在上文《尾递归与Continuation》里,我们谈到了尾递归的概念和示例,不过有些朋友对于尾递归的功效依然有所怀疑。因此现在,我再简单讲解一下尾递归的优化原理,希望能给大家以一定理性认识。 尾递归的循环优化 尾递归,即是递归调用放在方法末尾的递归方式,如经典的阶乘: 由于递归在方法的末尾,因此方法 阅读全文
尾调用和尾递归
2019-02-18 22:49 by GarfieldEr007, 306 阅读, 收藏, 编辑
摘要:
尾调用 1. 定义 尾调用是函数式编程中一个很重要的概念,当一个函数执行时的最后一个步骤是返回另一个函数的调用,这就叫做尾调用。 注意这里函数的调用方式是无所谓的,以下方式均可: 函数调用: func(···) 方法调用: obj.method(···) call调用: func.call(···) 阅读全文
递归和尾递归的区别和实现
2019-02-18 22:49 by GarfieldEr007, 545 阅读, 收藏, 编辑
摘要:
基本上大多数C的入门教材里都会说简单的递归,例如求阶乘n!,经典的本科入门书籍谭浩强的《C语言程序设计》,但后来看了《代码大全2》这本书,关于进阶和编码规范的书中提到了,这些计算机教材用愚蠢的例子阶乘和斐波那契数列来讲解阶乘,因为递归是强有力的工具,但用阶乘去计算阶乘之类的,很不明智,除了速度慢,还 阅读全文
尾调用优化
2019-02-18 22:46 by GarfieldEr007, 360 阅读, 收藏, 编辑
摘要:
尾调用(Tail Call)是函数式编程的一个重要概念,本文介绍它的含义和用法。 一、什么是尾调用? 尾调用的概念非常简单,一句话就能说清楚,就是指某个函数的最后一步是调用另一个函数。 上面代码中,函数f的最后一步是调用函数g,这就叫尾调用。 以下两种情况,都不属于尾调用。 上面代码中,情况一是调用 阅读全文
伪共享和缓存行
2019-02-18 22:39 by GarfieldEr007, 328 阅读, 收藏, 编辑
摘要:
在计算机系统中,内存是以缓存行为单位存储的,一个缓存行存储字节的数量为2的倍数,在不同的机器上,缓存行大小为32字节到256字节不等,通常来说为64字节。伪共享指的是在多个线程同时读写同一个缓存行的不同变量的时候,尽管这些变量之间没有任何关系,但是在多个线程之间仍然需要同步,从而导致性能下降的情况。 阅读全文