C#开发总结
-
C#开发笔记之07-如何实现交换2个变量的值而不引入中间变量?
C#开发笔记概述 概述 如何实现交换2个变量的值而不引入中间变量呢? 解释 这里给出常见的7种方法,仅供大家参考,部分实现C#不支持。 1、加减减法 2、减减加法 3、…
-
C#开发笔记之06-为什么要尽可能的使用尾递归,编译器会为它做优化吗?
C#开发笔记概述 概述 从A函数跳转到B函数,在B函数执行完毕后,程序为什么能精确的返回到A函数中未执行完的代码区域? 解释 首先,我们要知道什么是栈和栈帧。 栈是一种特殊的线性表…
-
C#开发笔记之05-迭代器中的状态机(State Machine)到底是什么?
C#开发笔记概述 概述 状态机可以理解为实现了备忘录模式(仅作为理解)的记录状态的机器,这个机器记录的是某个对象的中间状态。对于迭代器来说,它所要记录的状态就是迭代器游标,以指示外…
-
C#开发笔记之04-如何用C#优雅的计算个人所得税?
C#开发笔记概述 概述 首先,要对个人所得税的计算方式了解之后再看本文。 个人所得税的计算使用任何计算机语言来实现都比较简单,关键是如何优雅的实现呢?我们的目标是消除大量难看的if…
-
C#开发笔记之03-为什么选择IsNotXXX方法而不是IsXXX方法?
C#开发笔记概述 概述 为什么有时候要选择IsNotXXX方法而不是IsXXX方法呢?答案是效率。 解释 请看以下代码: 以上代码可在我的 C#设计模式 系列博…
-
C#开发笔记之02-什么时候使用OnXXX方法,这种命名是什么意思?
C#开发笔记概述 概述 你也许经常会看到别人写的代码里有OnXXX方法,而你却觉得很奇怪,为什么会这样命名呢?它的意义在哪里? 解释 OnXXX可以理解为“在XXX事情发生时”,它…
-
C#开发笔记之01-为什么开源框架会大量的使用protected virtual?
C#开发笔记概述 概述 我们在很多开源框架中会经常看到protected virtual标记的方法,那么为什么要使用这2个关键字呢? 1、使用protected访问修饰符标记的方法…