让我们看看这段代码:
public IQueryable<Category> GetAllActive()
{
Contract.Ensures(Contract.Result<IQueryable<Category>>() != null);
return dataSource.GetCategories(T => T.IsActive);
}
有一个小问题。代码合同可以这样写:
public IQueryable<Category> GetAllActive()
{
Contract.Ensures(Contract.Result<IQueryable<Category>>() != null);
Contract.Ensures(Contract.Result<IQueryable<Category>>().All(T => T.IsActive));
return dataSource.GetCategories(T => T.IsActive);
}
或不?
这样的事情会产生不必要的序列枚举,这是非常不可取的吗?