Обобщенный метод с Nullable типом - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте уважаемые!
Листинг программы
  1. protected T ConvertPresenter<T>(dynamic val, Func<bool> pridicate) where T : [COLOR="red"]class[/COLOR]
  2. {
  3. var tempVal = (T)Convert.ChangeType(val, typeof(T));
  4. return pridicate() ? tempVal : null;
  5. }
  6.  
  7. public override dynamic PresenterVal
  8. {
  9. set
  10. {
  11. ushort? val = ConvertPresenter<[COLOR="Red"]ushort?[/COLOR]>(Value, () => true);
  12. if (val.HasValue)
  13. ValBin = BitConverter.GetBytes(val.Value);
  14. }
  15. get
  16. {
  17. return val;
  18. }
  19. }
как заставить ConvertPresenter использовать тип ushort? при вызове. если убрать
Листинг программы
  1. where T : class
то функция не сможет вернуть null. Прошу помочь, скорее всего где то туплю)). Заранее всем спасибо за сотрудничество!!!

Решение задачи: «Обобщенный метод с Nullable типом»

textual
Листинг программы
  1.         static T ConvertPresenter<T>(dynamic val, Func<bool> pridicate)
  2.         {
  3.             try
  4.             {
  5.                 var tempVal = (T)Convert.ChangeType(val, typeof(T));
  6.                 return pridicate() ? tempVal : default(T);
  7.             }
  8.             catch (Exception)
  9.             {
  10.                 return default(T);
  11.             }
  12.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.875 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы