return new List<Product>(0);
}
}
在客户端,假设我们设置为不营业。
复制代码 class Program{
static void Main(string[] args)
{
ProductService service = new ProductService();
service.IsClosed = true;
IEnumerable<Product> products = service.ShowProducts();
if (products.Count() > 0)
{
foreach (var prod in products)
{
Console.WriteLine("产品:{0},价格:{1}",prod.Name, prod.Price);
}
}
else
{
Console.WriteLine("今天不营业~~");
}
Console.ReadKey();
}
}
输出结果:今天不营业~~
这样做确实没什么问题,但问题是:当通过 new List<Product>(0)返回空的集合时,为其分配了内存。对于一个只读的、空的集合类型,是否可以做到不耗费内存呢?
--答案是使用Enumerable类的静态方法Empty()。
在ProductService的ShowProducts()中修改如下:
复制代码 public IEnumerable<Product> ShowProducts(){
if (!IsClosed)










