我遇到的代码如下:
var vpAlias = null;
var prices = session.QueryOver<Vehicle>()
.Left.JoinAlias<VehiclePrice>(x => x.VehiclePrice, () => vpAlias, x => x.VehiclePriceTypeId == 1)
.Where(() => vpAlias.Id == null || vpAlias.VehiclePriceTypeId == 1)
.Select(x => x.Id, () => vpAlias.Price)
.ToList();
在其lambda表达式中使用()
。那是什么意思 ?它是否仅用作占位符?
答案 0 :(得分:16)
它只是意味着它是一个空参数列表 - 对于没有任何参数的委托类型。
您可以撰写x => x.Id
这一事实只是(x) => x.Id
的简写,而(Vehicle x) => x.Id
也是{{1}}的简写。这只是一个参数列表。
答案 1 :(得分:3)
它与:{/ p>中的空()
相同
static SomeType YourNamedMethod()
{
return vpAlias;
}
答案 2 :(得分:3)
括号包含参数列表。只有你有1个参数才能让它们关闭。 例子:
0个参数:() => result
1个参数:(x) => result or x => result
2个参数:(x, y) => x + y;
答案 3 :(得分:1)
() => { ... }
是Func<TOut>
,所以它不需要任何输入,你可以将其视为
<returnType> MyFunction () { // Code goes here }