12 2011 档案

摘要:直接上代码了,以后碰到类似的就直接用了public static TKey FindKeyByValue<TKey, TValue>(this IDictionary<TKey, TValue> dictionary, TValue value) { if (dictionary == null) throw new ArgumentNullException("dictionary"); foreach (KeyValuePair<TKey, TValue> pair in dictionary) ... 阅读全文

posted @ 2011-12-21 09:58 leon_ALiang 阅读(253) 评论(0) 推荐(0) |

摘要:在日常开发中,经常会碰到对Dictionary的大量操作,判断等。当然可以用Dictionary本省,也可以重写一个符合自己逻辑处理的Dictionary.public class MyDictionary<TKey, TValue> : IDictionary<TKey, TValue> { IList<TKey> keys = new List<TKey>(); IList<TValue> values = new List<TValue>(); public MyDictionary() { } ... 阅读全文

posted @ 2011-12-14 10:49 leon_ALiang 阅读(219) 评论(0) 推荐(0) |

摘要:“开放-封闭”原则是我们OOD的目标,达到这一目标的主要机制就是“依赖倒转”原则(DIP)这个原则的内容是:要依赖于抽象,不要依赖于具体。或者说是:要针对接口编程,不要对实现编程(Program to an interface, not an implementation)。对于抽象层次来说,它是一个系统的本质的概括是系统的商务逻辑和宏观的,战略性的决定,是必然性的体现;具体的层次则是与实现有关的算法和逻辑,一些战术性的决定,带有相当大的偶然性。传统的过程性系统设计办法倾向于使高层次的模块依赖于低层次的模块;抽象层次依赖于具体层次。这实际上就是微观决定宏观,战术决定战略,偶然决定必然。依赖倒转 阅读全文

posted @ 2011-12-08 18:03 leon_ALiang 阅读(954) 评论(0) 推荐(0) |

摘要:从内存的角度来说,子类实例化的时候,会为抽象类划出来一块堆内存,用来存储抽象类的成员变量,而Interface没有成员变量,所以就不用开辟堆内存。(当然用来存储函数首地址的空间是省不了的)。 阅读全文

posted @ 2011-12-01 11:00 leon_ALiang 阅读(1064) 评论(0) 推荐(0) |

博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3