随笔分类 - 代码优化技巧和重构手段
自己日常的学习重构的经验
摘要:前言 new 在重构这本书中写道new就是坏代码的味道,说明使用new的情况并不多。 在这里我指的new 是方法修饰符,而不是指实例。 正文 看下new的作用: new 修饰符可以重新定义从基类继承下来的非虚成员。 也就是说你考虑的是是不是需要重新定义,如果不需要那么就不应该使用new。 使用一个n
阅读全文
摘要:前言 先来看一个例子: 假设updated 是一个委托: if(updated!=null) { updated(); } 请问上面写法在多线程中安全吗?如果不安全会抛出什么异常呢? 正文 上面的答案是不安全,因为可能运行完updated!=null的时候,另一个线程将updated重置为null,
阅读全文
摘要:前言 委托为什么可以作为回调? 因为委托可以作为方法的参数。 正文 通过委托,是一种定义类型安全回调。 记得第一个接触委托的时候,是老师讲的,后来真正用的是完成学期项目,一个winform,委托作为事件处理,怀念写客户端的日子。 很多时候我们通过接口来对类与类之间解耦,但是委托是一种比接口耦合还要低
阅读全文
摘要:前言 在我们的程序中,经常使用到字符串,字符串的写法非常多,但是有一个问题就是我们写的字符串是否合适呢? 正文 内插符 介绍一个东西叫做内插字符,如下: static void Main(string[] args) { string w = "Word"; string s = $"Hello {
阅读全文
摘要:前言 使用as和强制类型转换的时候的区别是否仅仅是代码形式上的区别。 答案是肯定不是的。 正文 看两段代码: object o = Factory.GetObject(); Student student = o as Student; if (student != null) { //dosome
阅读全文
摘要:前言 在c# 的世界中,在初学的时候,可能很难区分readonly 和 const,两者都是不可修改。 看到这两个单词,我们想的是,最多他们的区别也不会太大。然后事实却出乎我们的意料。 正文 这两个声明变量根本是不同时期的变量。 readonly 是 运行时常量,而const 是编译的时候的变量。
阅读全文
摘要:前言 说到底就是优先使用var,这个关键字,在c# 3.0中出现了。 首先要确认几点,一个就是var 是静态变量,而不是动态变量,也就是说使用var 你是不必去担心性能问题得, 百度百科: 1)静态存储变量通常是在变量定义时就分定存储单元并一直保持不变,直至整个程序结束。静态变量,全局动态变量都是静
阅读全文
浙公网安备 33010602011771号