Задать вопрос
  • Наследование и(или) уменьшение объема кода - C#?

    EreminD
    @EreminD
    Кое-что умею
    В учебнике Троелсона на примере фигур рассматривается принцип наследования

    Сделайте класс figura (раз уж по английски никак) и там создайте члены
    protected double x1;
    protected double y1;
    protected double x2;
    protected double y2;
    protected double x3;
    protected double y3;
    protected double x4;
    protected double y4;

    От него унаследуйте все свои круги и квадраты

    Еще можно в figura определить абстрактные методы Ploshad() и Perim()
    А у наследников определить реализацию - каждому свою.

    Так правильнее. И вы сможете, например, работать с коллекцией фигур. Например
    List<figura> figuri = new List<figura>();
    figuri.Add(new krug());
    figuri.Add(new romb());
    figuri.Add(new kvadrat());
    
    foreach(var fig in figuri)
    {
    Console.WriteLine(fig.ploshad());
    }


    Не сказать, что кода станет сильно меньше. Хотя вам не придется в каждом классе объявлять вот эту портянку из x1, x2... y4
    Удобнее будет работать с семейством классов - это очень полезное изменение
    Ответ написан
    3 комментария