项目开发中遇到的一些问题--代码优化的一些小建议
来源:互联网 发布:mysql不区分大小写查询 编辑:程序博客网 时间:2024/06/05 20:54
一.string非空验证
第二种方法加+“”是为了当str为null时的验证
二.bool返回值
if(i==1){ return true;}else{return false;}
i==1?true:false
运用三元符节省代码
三.习惯性加上后缀
抽象基类
-Base
接口
I-
异常
-Exception
事件参数
-EventArgs
事件委托
-EventHandler
特性
-Attribute
泛型类型参数
T-
i, j, k
循环变量(类型:System.Int32)
o
System.Object
s
System.String
e
事件实参(基类:System.EventArgs)
ex
异常(基类:System.Exception)
g
System.Drawing.Graphics
x, y, z
Lambda表达式的形参
工厂模式:-Factory
枚举:-Enum
bool类型命名要能体现bool特征 例如 IsDelete CanRemove
命名空间的命名:公司名.产品名.技术/模块名。将相互依赖的类型放在同一命名空间下。不要污染框架命名空间(例如在System命名空间中添加类型)。
不依赖运算符优先级 应加上括号:1+2*3 1+(2*3)
六.字符串相关
不分大小写的比较应当用string.Compare(str1, str2, true)而不是str1.ToUpper() == str2.ToUpper()。
大量拼接字符串要使用StringBuilder类。
考虑使用string.Format()方法而不是字符串拼接来输出结果。
七.使用查询表达式代替循环
points中点按到原点距离排序:var q=points.OrderBy(x=>x.DistTo(new Point(0,0)));
List<int> list 判断list中的数是否有大于100的(是否都大于100): list.Any(x=>x>100) list.All(x=>x>100)
八.返回多个参数
在Matlab中可以用矩阵返回多个值,这就是元组(Tuple)当函数需要返回多个值时,应当使用元组(Tuple)而不是输出参数(out ref同样避免使用)
九.小函数
将大函数分拆成小函数。这样做的好处有:
合并重复代码,便于维护
增加函数层级,便于调试
方法参数也不宜过多,否则也应考虑拆分。
十.充分利用BCL
- BCL中提供了很多常用算法,并且还在不断扩充。例如,.NET 4增加了System.Numerics命名空间,目前包括BigIntegar和Complex类,而在bcl.codeplex.com上已经放出了BigRational类的候选版和源代码。
- 尽可能只依赖BCL,减少第三方依赖。
- 对字符串的操作都有简单的方法可以调用。用这些方法不仅能更方便省时、稳定高效,而且能使你的代码趋向于可读性强的声明式风格。
- 尽可能只用系统定义的委托,而不是自己定义委托类型。系统定义的委托包括:各种泛型参数数目的Func, Action; 一个Predicate<T>;各种EventHandler。
- 使用虚函数和多态而不是频繁使用引用转换
- 创建枚举0值表示未初始化、无效、未指定或默认
- 总是在派生类构造函数的初始化列表中列出所有基构造函数
- 总是重写ToString()方法
- 项目开发中遇到的一些问题--代码优化的一些小建议
- 项目中遇到的一些小问题
- 项目中遇到的一些小问题
- 项目中遇到的一些小问题
- 一些项目中遇到的小问题
- 开发中所遇到的一些杂七杂八的问题以及一些杂七杂八的建议
- Qt项目中遇到的一些小问题汇总
- Qt项目中遇到的一些小问题汇总
- Qt项目中遇到的一些 小问题汇总
- Qt项目中遇到的一些小问题汇总
- 实际项目中遇到的一些小问题
- Android开发过程中遇到的一些小问题
- 学习android开发中遇到的一些小问题
- 开发过程中 遇到的一些小问题 总结一下
- iOS开发中遇到的一些小问题
- 安卓开发中遇到的一些小问题
- Android开发中遇到的一些小问题
- Android开发中遇到的一些小问题
- bzoj1061 [ NOI2008 ] --线性规划
- Kotlin 入门
- bzoj3998 [ TJOI2015 ] --后缀自动机
- USB驱动查询USB设备信息
- 使用git将项目上传到github(最简单方法)
- 项目开发中遇到的一些问题--代码优化的一些小建议
- bzoj3238 [ AHOI2013 ] --后缀自动机
- bzoj1492 [ NOI2007 ] --斜率优化DP+cdq分治
- View类属性
- bzoj3963 [ WF2011 ] --cdq分治
- 基于GPUImage的多滤镜rtmp直播推流
- codeforces293E Close Vertices -- 点分治+树状数组
- bzoj3351 [ IOI2009 ] -- 阈值
- FFMPEG自学资料