このコードが機能することに驚きました:
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();
|| を使用しているにもかかわらず、問題があることはわかっています。オペレーター--私が思っているようには機能しません。
2 番目の例では、カテゴリの値が null であるにもかかわらず、カテゴリが参照されるのはなぜですか。短絡しませんか?