没用的东西一大堆,也许不是因为没用,是因为不会用,不过不会用就别用才是王道!
说了一句废话。
接下来我分享一下我认为有用的东西。
接口有用,但是很难用,一般而言小项目没什么用,有那个心思折腾“耦合”问题,不如花心思实现“业务”算法。
类有用,但是没有多大用,不要滥用类做层层的转接工作。只做轻包装。假如一个东西不能帮你省时间,做得漂亮不过是奇技淫巧,自寻烦恼。不怕挑战,怕无视效率的技巧。避免使用继承,用接口实现多态。因为接口的多态比较烦,所以迫使你不要滥用技巧。
结构有用,但是结构的特性需要导致它在集合中受到不少限制,用来实现数据结构,反而不如类清爽。如果要用结构,需要严密的思路,做好布局,头脑有清醒的认识,不要构造复杂的数据结构。
linq有用,但是不太好理解,当然可以用,如果不在乎效率的场合。一定要掌握结合扩展函数编程,因为linq只是一个有限的子集。扩展函数才是真身。
最有用的是啥,就是.net 类库。代码写的好,不如不写代码!
其中,首先要关注类库里面的接口,泛型,非常有用,不要重复造轮子,多学习.net提供的基础工具,它们几乎是完美无缺的,神的仆人。
数据结构是其次的,最常用的数据结构就是数组,然后列表,队列,栈,字典其他基本没用。复杂的算法,你会自己去实现数据结构,以彰显你的本事,对不?所以,复杂的数据结构基本没用。
其中数组是最关键的一种数据结构,将自然数和对象进行关联,绝多数算法需要的技巧。
lambda简易,圣品!不用对不起c#。
线程和wpf都是需要掌握的,虽然烦,业务需要。
再重复一次,.net类库中的接口、泛型工具类(如Action、Func、Tuple等),经常用。
unsafe也可以用的,c#的限制太多,什么goto,有时很犀利。
不知道是什么原因,.net类库没有很好组织这些工具,零零散散的散落在.net不同的命名空间,需要好好的收集。