OA 项目组编码规范
1. 集合的使用
如果集合在上下文中的长度是可变的,那么用List<T>
如果集合在上下文中的长度是不可变的,那么用IEnumerable<T>
2. 对foreach的简化
代码
List<ReservationType> resList = new List<ReservationType>();
foreach(var res in reses)
{
if(res.Status == (int)ReservationTypeEnum.Normal && res.Time >= DateTime.Today)
{
resList.Add(res);
}
}
foreach(var res in reses)
{
if(res.Status == (int)ReservationTypeEnum.Normal && res.Time >= DateTime.Today)
{
resList.Add(res);
}
}
应该重构为以下代码
var normalReses = reses.SafeFindAll(n=>n.Status == (int)ReservationTypeEnum.Normal && n.Time >= DateTime.Today);
2. 参数命名
对于class的public方法,如果在执行过程中,该参数是可选的,那么参数名称前面加上option,例如:
public void DoSomething(long clientID, long optionDependentID){}
3.冗余代码
没有必要的变量
1 List<SaleItem> saleItemList = new List<SaleItem>();
2 saleItemList.AddRange(otherCollection.SaleItems);
3
4 IEnumerable<SaleItem> newSaleItems = GenerateNewSaleItems(saleItemList, numberOfPersons);
2 saleItemList.AddRange(otherCollection.SaleItems);
3
4 IEnumerable<SaleItem> newSaleItems = GenerateNewSaleItems(saleItemList, numberOfPersons);
saleItemsList在这里为没有必要的变量。可以将代码简化为
1 IEnumerable<SaleItem> newSaleItems = GenerateNewSaleItems(new List<SaleItem>(otherCollection.SaleItems), numberOfPersons);
或者修改GenerateNewSaleItems的函数声明
1 private List<SaleItem> GenerateNewSaleItems(List<SaleItem> saleItemList, int numberOfPersons)
改为
1 private IEnumerable<SaleItem> GenerateNewSaleItems(IEnumerable<SaleItem> saleItemList, int numberOfPersons)
...持续更新中