У меня есть лямбда-выражение, которое принимает int?
(целое число, допускающее значение NULL),
которое возвращает значение, если оно существует, или DBNull.Value
в противном случае.
Func<int?, object> getId = id => id.HasValue ? id.Value : (object)DBNull.Value;
Цель здесь в том, что я хочу сделать это выражение немного более общим, чтобы я мог передавать любые типы, допускающие значение NULL, например, DateTime?
Итак, вот нефункциональный код, с которого я начал, но не уверен, где указать тип nullable.
int? imageId;
DateTime? actionDate;
Func<Nullable<T>, object> getValue =
id => id.HasValue ? id.Value : (object) DBNull.Value;
SaveImage(getValue(imageId), getValue(actionDate));
Можно ли указать общий тип или для этого нужно создать именованную функцию?