Нужна помощь в написании анонимного метода?
Простите, если мой вопрос технически сформулирован неверно, но мне в основном нужен анонимный метод или делегат Func для инкапсуляции следующей функциональности:
if (Cache.CurrentCustomer == null)
{
return null;
}
else
{
return Cache.CurrentCustomer.PersonID; // (Guid type)
}
Вышеприведенный оператор if вернет значение, которое будет присвоено сущности Order, имеющей открытое поле свойства PersonID, которое принимает обнуляемый тип guid.
Если возможен делегат Func, его можно создать на лету, например:
orderToInsert.PersonID = new Func() => { ... }
Обычно я отправляю свой сценарий if в метод справочной поддержки, это хорошая возможность узнать что-то, что я пытался выбрать целую вечность! ТИА!!!
1 ответ
Вот оно в лямбда-форме:
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;