Ответы пользователя по тегу C#
  • Тенденции рынка труда для ASP.NET CORE разработчиков?

    Вы смотрите asp.net core. Это технология для построения вебсервисов, поэтому вы и видите много вакансий, где хотят от кандидата знание фронта. НО! Чистые бэкендерский вакансии тоже есть и их много, особенно в крупных компаниях. А если вы введете не asp.net core, а .net core, то на порядок больше увидите)
    Ответ написан
    Комментировать
  • Объект с полями (one-to-many) возвращается со значением null в полях в Entity Framework, как это решить?

    Какая версия EF?

    В целом
    public virtual ICollection<LearnDay> LearnDay { get; set; }
    спасет, если не Core, т.к. реализовано lazy, в коре спасают инклюды
    Ответ написан
    Комментировать
  • Почему для использования дженериков нужен интерфейс?

    Вопрос конечно не совсем корректен, интерфейс не обязателен.

    Вы просто в этом примере создаете интерфейс IPerson. Этот интерфейс могут по факту реализовывать сколько угодно классов. Например Person1, Person2, Person3. Все по своему.
    Теперь вам нужно сделать метод SpeakTo, который позволит вам поговорить с любым из этих классов. Окей, пишем дженерик и пишем ограничение на интерфейс. (where T : IPerson )
    Теперь в метод вы можете передать любой класс, реализующий интерфейс IPerson.

    Но вы также можете написать например класс PersonBase вместо интерфейса, унаследовать наши Person1, Person2, Person3 от базового класса. Тогда вам нужно будет написать ограничение не на интерфейс, а на базовый класс where T : PersonBase. И вы также сможете передавать в метод SpeakTo любой класс, унаследованный от PersonBase.
    public class PersonBase
    {
      public virtual string GetFirstName() {return "MY name is base"; }
      public virtual string GetLastName() { return "MY lastname is base"; }
    }
    
    //либо через абстрактный класс
    //public abstarct class PersonBase
    //{
    //  public abstract string GetFirstName();
    //  public abstract string GetLastName();
    //}
    
    class Speaker 
    {
      public void SpeakTo<T>(T person) where T : PersonBase
      {
        string name = person.GetFirstName();
        this.say("Hello, " + name);
      }
    }

    Еще бывают ограничения на конструктор, ограничения ссылочного типа и ограничения типа значения.
    Ответ написан
    Комментировать
  • Как сократить конструктор дочернего класса, дабы установить все параметры родительского объекта в дочерний?

    Попробуйте автомаппер, мне если честно вообще не нравится этот код. Я бы не делал такой конструктор ИМХО. Лучше какой-то маппер/конвертер в отдельном классе. А можно вообще не наследоваться, просто добавьте св-во типа Article. И вокруг него уже пляшите. Зависит от контекста того, что вы делаете.
    Ответ написан
    4 комментария
  • Как вычислить значение функций в С#?

    Не совсем понятно, вы вводите R с клавиатуры и значение X, в котором надо вычислить Y?
    У вас тут 4 отрезка от -бесконечности до -R, от -R до 0, от 0 до R и от R до плюс бесконечности. Какой функцией описать каждый отрезок думаю догадаетесь. Дальше if в помощь, чтобы проверить в какой из отрезков попадает X и рассчитать соответствующую функцию.
    Ответ написан
    Комментировать