我很惊讶这段代码有效:
string category = null;
Category Category = null;
int categoryId = 0;
var products = repository.Products
.Where(p => category == null || p.CategoryID == categoryId)
.ToList();
但是下面的代码失败了:
string category = null;
Category Category = null;
int categoryId = 0;
var products = repository.Products
.Where(p => category == null || p.CategoryID == Category.CategoryID)
.ToList();
我知道问题是即使我使用 || 操作员——它并不像我想象的那样工作。
在第二个示例中,为什么要查看类别——即使类别值为空。不会短路吗?