请原谅我,如果我的问题在技术上有问题,但我基本上需要一个匿名方法或Func委托来封装以下功能:
if (Cache.CurrentCustomer == null)
{
return null;
}
else
{
return Cache.CurrentCustomer.PersonID; // (Guid type)
}
上面的if语句将返回一个值,该值将针对具有PersonID属性字段的Order实体分配,该字段接受可以为空的guid类型。
如果Func委托是可能的,那么就可以实时实例化:
orderToInsert.PersonID = new Func() => { ... }
我通常会将我的if语句场景发送到帮助支持方法中,这是一个学习我多年来一直试图挑选的东西的好机会! TIA !!!
答案 0 :(得分:4)
这是lambda形式:
Func<Guid?> lambda = () => Cache.CurrentCustomer == null
? (Guid?)null
: Cache.CurrentCustomer.PersonID;
然后您将在
中使用它orderToInsert.PersonID = lambda();
更新:如果您只是想看看这里有什么可能,那么您也可以这样做:
orderToInsert.PersonID = (() => Cache.CurrentCustomer == null
? (Guid?)null
: Cache.CurrentCustomer.PersonID)();
这实际上只是做经典的迂回方式:
orderToInsert.PersonID = Cache.CurrentCustomer == null
? (Guid?)null
: Cache.CurrentCustomer.PersonID;