Вопрос по свойствам Json

204
28 июля 2018, 19:40

Вот есть авто свойства, какой метод реализации будет лучше на Ваш счёт и правильнее?

internal class JsonProperty
{
  [JsonProperty("Day")]
  public string NewDay { get; set; }
  [JsonProperty("Month")]
  public string NewMonth { get; set; }
  [JsonProperty("Year")]
  public string NewYear { get; set; }
}

Нужно ли делать переопределение?

internal class JsonProperty
{
   public JsonProperty(string day, string month, string year)
   {
      this.NewDay = day;
      this.NewMonth = month;
      this.NewYear = year;
   }
   [JsonProperty("Day")]
   public string NewDay { get; set; }
   [JsonProperty("Month")]
   public string NewMonth { get; set; }
   [JsonProperty("Year")]
   public string NewYear { get; set; }
}

И вот ещё вариант с извлечением в интерфейс:

internal interface IJsonProperty
{
  string NewDay { get; set; }
  string NewMonth { get; set; }
  string NewYear { get; set; }
}
internal class JsonProperty : IJsonProperty
{
   public JsonProperty(string day, string month, string year)
   {
      this.NewDay = day;
      this.NewMonth = month;
      this.NewYear = year;
   }
   [JsonProperty("Day")]
   public string NewDay { get; set; }
   [JsonProperty("Month")]
   public string NewMonth { get; set; }
   [JsonProperty("Year")]
   public string NewYear { get; set; }
    }
}
Answer 1

Есть готовый тип DateTime, используйте его.

Ваш способ хранить по отдельным полям - это как лететь из Москвы в Санкт-Петербург через Владивосток. В программировании, как и в любой инженерной дисциплине стараются решить задачу минимальными средствами. Попробуйте мысленно довести идею до абсурда: вы б ещё отдельными битами хранили дату.

Есть готовый тип в языке, есть методы работы с ним - и надо взять это и пользоваться этим, а не городить огород из самопальных методов.

У вас есть какие-то требования, исходя из которых чётко и явно выводятся те способы решения, которые указаны? Нет, их нету - как минимум не описаны в вопросе, а просто где-то есть у вас в голове в виде несформулированных и неозвученных требований. А раз нету - значит идём к цели напрямую, без излишних углов.

Просто посмотрите на число апвоутов на комментарии

А типа DateTime недостаточно?

READ ALSO
Получить изображение из reCAPTCHA

Получить изображение из reCAPTCHA

Мне нужно пройти авторизацию на вебсайте средствами C#В форме авторизации присутствует reCAPTCHA

188
Задать CornerRadius как Attached Property для ComboBox

Задать CornerRadius как Attached Property для ComboBox

Я смог сделать CornerRadius как Attached property для Button и TextBox с помощью класса

197
Не отображается текст из файла в ListBox-e

Не отображается текст из файла в ListBox-e

После перезагрузки компьютера перестали выводиться данные из файла в ListBox, но при этом ошибок при компиляции не выявляются, просто при нажатии...

185
Wpf Calendar изменение CalendarItem

Wpf Calendar изменение CalendarItem

Вопрос такой возможно ли создание/изменение стиля CalendarItem так чтобы можно было отображать еще и доп значение(грубо говоря номер) из модели...

252