Распарсить строку в разные nullable типы — Decimal И DateTime — в одном операторе - C#
Формулировка задачи:
День добрый.
Возникла необходимость парсить строку в разные nullable типы - Decimal? и DateTime? - в одном операторе. Для этого я сделал обобщённый класс (ну чтобы не писать свой парсинг для каждого из типов), вот такой:
и парсю так:
Это всё работает, но не нравится, что статический метод Parse приходится вызывать на экземпляре класса. Пытался приблудить како-нибудь интерфейс IParsable, но мозгов не хватает понять, как его потом унаследовать уже существующими классами Decimal и DateTime.
Буду благодарен за указание на то, как такую задачу можно решить покрасивее.
class Nullables<T> where T: new() { public static T Parse(string arg) { dynamic obj = new T(); if (arg == string.Empty) { return default(T); } else { return obj.Parse(arg); } } }
Date_start = Nullables<DateTime?>.Parse(splittedLine[5]); Penya = Nullables<Decimal?>.Parse(splittedLine[11]);
Решение задачи: «Распарсить строку в разные nullable типы — Decimal И DateTime — в одном операторе»
textual
Листинг программы
public static class Parsers { public static Nullable<T> Parse<T>(this string input) where T : struct { if (string.IsNullOrEmpty(input)) return null; try { return new Nullable<T>((T)Convert.ChangeType(input, typeof(T))); } catch { return null; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д