return delegate(IQueryable<MySearchResultItem> query, Expression<Func<MySearchResultItem, object>> lambda, Wrapper wrapper)
{
wrapper.query = query.OrderBy(lambda);
query = query.OrderBy(lambda);
};
ラッパークラス:私はこのデリゲートを実行すると、クエリを変更するために、この関数が終わった後
public class Wrapper
{
public IQueryable<MySearchResultItem> query { get; set; }
}
私は期待が、それはdidnの't。だから、私は、クエリは、(参照ではなく)値によって渡されたと仮定
しかし、私はこのクエリのラッパークラスを作成するときに、ラッパークラスにクエリを追加し、同様にこれを渡します。その後、このメソッドが実行された後、ラッパークラス内のクエリが変更されたため(このラッパークラスは参照渡しされました)
ここでは何が起こっていますか?
あなたはquery.OrderBy(ラムダ)に新たにクエリを割り当てます。新しい参照を作成しないで、入力クエリパラメータが変更されないでしょうか? –