profile for Macon_Cao at Stack Overflow, Q&A for professional and enthusiast programmers

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);
    }
}

 

 

应该重构为以下代码

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);

 

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)

 

 

 

...持续更新中

posted on 2011-01-12 10:33  无所畏惧,有所期待  阅读(310)  评论(0编辑  收藏  举报