项目开发中遇到的一些问题--代码优化的一些小建议

一.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()方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值