需要帮助编写匿名方法?

时间:2011-09-12 14:17:57

标签: c# .net-4.0 anonymous-methods

请原谅我,如果我的问题在技术上有问题,但我基本上需要一个匿名方法或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 !!!

1 个答案:

答案 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;