委托:
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; }
}
当我执行这个委托时,我期望这个函数结束后查询会被更改,但事实并非如此。因此,我认为查询是按值传递的(而不是按引用传递)。
但是,当我为这个查询创建一个包装类,将查询添加到包装类中并同时传递它。然后,在此方法完成后,包装类内部的查询已经被更改了(所以这个包装类是按引用传递的?)
这里发生了什么?