c#基础及性能优化
1.内存
1.1了解栈、托管堆、垃圾回收
2.数据类型
2.1装箱拆箱
1.2 struct:基本是给调用COM,API外部DLL、unsafe留的。规范多多:
1。转成接口将装箱,
2。不能太大,因为传入传出都将复制成员数据=》如果只是局部变量用,还不如多申明几个变量,反正也不多
3。效率的提升:使用调用栈/不用分配托管堆上的对象,不用垃圾回收,但GC人家做的挺好/ =》 用不好效率低,用的好也就养养眼。
3.委托
4.泛型:概念是好,问题还是多多,喜欢用接口编程的话,泛型很无奈(逆变怕怕,不说)
.net4支持接口协变,不支持类协变,用起来麻烦(理论上应该实现,只有期待未来的编译器更智能)
只有ienumable<T>协变,其他只有自己动手,动完手发现还是衣残食蔽
建议:尽量避免非直接类型的泛型类(TClass<T,T1>{T t;T1 t1;...}正解,TClass<T,T1>{IFoo<T> foo1,IFoo2<T1> f2....}跟自己过不去)
4.动态程序
4.1反射
4.2 IL
4.3 LINQ/ExpressionTree
4.2动态程序集
4.3动态方法
4.4 动态编译
浙公网安备 33010602011771号