Класс описаний книг и необработанное исключение типа "System.StackOverflowException" - C#

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

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

Здравствуйте. Делаю задание и выбрасывает такое исключение. Помогите найти причину. Задание: Создать класс описаний книг. Поля должны быть закрытыми. Для всех полей должны быть созданы свойства. В конструкторе осуществляется инициализация всех полей. Необходимо создать метод, выводящий описание книги в строку (переопределение метода ToString). Создать два объекта описаний книг. Вызвать для них метод осуществляющий вывод строки описания. Создать массив(размерностью не более 5) объектов.Создать статический метод для упорядочивания(по числу страниц) данного масива.
using System;
 
namespace Kontrolnaya
{
    class Program
    {
        static void Main()
        {
            CBookCard oneBook = new CBookCard("Lermontov","Kniga","Shustrie",2012,"243","10");
            CBookCard twoBook = new CBookCard("Pushkin", "Kniga", "Dalnie", 2002, "269", "6");
            Console.WriteLine(oneBook);
            Console.WriteLine(twoBook);
        }
    }
 
    class CBookCard
    {
        public CBookCard(string Autor,string Tittle,string Publish,int Year,string Pages,string ISBN)
        {
            this.Autor = Autor;
            this.Tittle = Tittle;
            this.Publish = Publish;
            this.Year = Year;
            this.Pages = Pages;
            this.ISBN = ISBN;
            
        }                     
                      
        public string Autor
        {
            get
            {
                return Autor;
            }
            set
            {
                Autor = Autor;
            }
        }
 
        public string Tittle
        {
            get
            {
                return Tittle;
            }
            set
            {
                Tittle = Tittle;
            }
        }
 
        public string Publish
        {
            get
            {
                return Publish;
            }
            set
            {
                Publish = Publish;
            }
        }
 
        public int Year
        {
            get
            {
                return Year;
            }
            set
            {
                Year = Year;
            }
        }
 
        public string Pages
        {
            get
            {
                return Pages;
            }
            set
            {
                Pages = Pages;
            }
        }
 
        public string ISBN
        {
            get
            {
                return ISBN;
            }
            set
            {
                ISBN = ISBN;
            }
        }
                
        public override string ToString()
        {
            return "Автор: "+Autor+"Заглавие: "+Tittle+"Издательство: "+Publish+"Год издания: "+Year+"Число страниц: "+Pages+"ISBN: "+ISBN;
        }
    }
}

Решение задачи: «Класс описаний книг и необработанное исключение типа "System.StackOverflowException"»

textual
Листинг программы
  class CBookCard
  {
    public CBookCard(string autor, string tittle, string publish, int year, int pages, string isbn)
    {
      Autor = autor;
      Tittle = tittle;
      Publish = publish;
      Year = year;
      Pages = pages;
      ISBN = isbn;
    }
 
    public string Autor { get; set; }
    public string Tittle { get; set; }
    public string Publish { get; set; }
    public int Year { get; set; }
    public int Pages { get; set; }
    public string ISBN { get; set; }
 
    public override string ToString()
    {
      return "Автор: " + Autor + " Заглавие: " + Tittle + " Издательство: " + Publish + " Год издания: " + Year + " Число страниц: " + Pages + " ISBN: " + ISBN + "\n";
    }
  }
 
  class Program
  {
    static void QuickSort(CBookCard[] arr, int left, int right)
    {
      var x = arr[(left + right) / 2].Pages;
      var i = left;
      var j = right;
      while (i <= j)
      {
        while (arr[i].Pages < x) i++;
        while (arr[j].Pages > x) j--;
        if (i <= j)
        {
          var tmp = arr[i];
          arr[i] = arr[j];
          arr[j] = tmp;
          i++;
          j--;
        }
      }
      if (i < right)
      {
        QuickSort(arr, i, right);
      }
      else
      {
        if (left < j)
        {
          QuickSort(arr, left, j);
        }
      }
    }
 
    static void Main(string[] args)
    {
      var bookArr = new CBookCard[] {
       new CBookCard("Pervaya", "jhfg", "publish", 2010, 134, ""),
       new CBookCard("Vtoraya", "jhfg", "publish", 2010, 1340, ""),
       new CBookCard("Tretya", "jhfg", "publish", 2010, 58, ""),
       new CBookCard("Chetvertaya", "jhfg", "publish", 2010, 293, ""),
       new CBookCard("Pyataya", "jhfg", "publish", 2010, 15, "")
    };
      QuickSort(bookArr, 0, bookArr.Length - 1);
      foreach(var item in bookArr)
      {
        Console.WriteLine(item.ToString());
      }
      Console.ReadKey(true);
    }
  }

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


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

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

12   голосов , оценка 4.167 из 5
Похожие ответы