Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
 Аватар для vladimir8686
36 / 36 / 4
Регистрация: 27.05.2012
Сообщений: 180
Записей в блоге: 5

StackOverFlowException

26.04.2013, 15:10. Показов 1802. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть простенькое приложение, настолько простое что не могу понять откуда там ошибкам взяться, тем не менее StackOverFlowException в InitializeComponents().
В чем беда комрады?
Вложения
Тип файла: rar BonesXAML.rar (57.9 Кб, 5 просмотров)
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.04.2013, 15:10
Ответы с готовыми решениями:

StackoverflowException
Есть класс в котором куча стринговых переменных с значениями и 5 простых. Пробовал уменьшать кол-во переменных до 24, но ошибка вылезает...

StackOverflowException
Здравствуйте! Помогите решить проблему в коде. Согласно Debug`еру встречается при вызове метода SortQueue. Вот код: Main: ...

System.StackOverflowException
public string name { get { return name; } set { if (value != null)name = value; } } Результат...

5
17 / 15 / 4
Регистрация: 28.03.2013
Сообщений: 54
26.04.2013, 15:36
MainWindow.Xaml.cs
В конструкторе MainWindow вызывается конструктор BonesLogic
C#
1
2
3
4
5
6
public MainWindow()
        {
            InitializeComponent();
            WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;
            bonesLogicObject = new BonesLogic(); //<--------------------------------------ТУТ
        }
BonesLogic.cs
Затем в конструкторе BonesLogic вызывается конструктор MainWindow
C#
1
2
3
4
5
6
7
8
9
10
class BonesLogic
    {
        int first, second, sum;
        string name;
 
        static Random randomFigure = new Random();
        BonesLogic[] playersSum = new BonesLogic[3];
        
        MainWindow mainWindowObject = new MainWindow(); // <----------------------ТУТ
        Results resultsWindowObject = new Results();// до сюда компилятор уже не доходит.
Рекурсивным методом эти два конструктора создают экземпляры друг друга до тех пор пока не забьют всю память, ну а потом выкидывает эксептшон что стек забит до отказа.
1
 Аватар для vladimir8686
36 / 36 / 4
Регистрация: 27.05.2012
Сообщений: 180
Записей в блоге: 5
26.04.2013, 16:13  [ТС]
Можно ли как-нибудь выйти элегантно из ситуации товарищ?
0
17 / 15 / 4
Регистрация: 28.03.2013
Сообщений: 54
26.04.2013, 17:25
Можно передать объекты формы в саму функцию Game()
C#
1
bonesLogicObject.Game(textBox1, textBox2, textBox3);
Соответственно:
C#
1
2
3
4
5
6
7
8
9
10
11
12
public void Game(TextBox TB1, TextBox TB2, TextBox TB3) // <------
        {
            TextBox[] textMass = { TB1, TB2, TB3, };// <-------
 
            for (int i = 0; i < playersSum.Length; i++)
            {
                first = randomFigure.Next(0,6);
                second = randomFigure.Next(0, 6);
                playersSum[i] = new BonesLogic(string.Format("Player{0}",i), first, second, first + second);
                textMass[i].Text = string.Format("{0}, {1} : sum {2}", playersSum[i].first, playersSum[i].second, playersSum[i].sum);
            } 
        }
но от этого легче не становиться - там в программе инициализируется еще одно окно в Results.cs и я думаю из-за него процесс не завершается...
0
 Аватар для vladimir8686
36 / 36 / 4
Регистрация: 27.05.2012
Сообщений: 180
Записей в блоге: 5
26.04.2013, 17:29  [ТС]
Именно такой вариант у меня изначально и был, но я посчитал код избыточным, видимо придется снова к нему возвращаться..
0
17 / 15 / 4
Регистрация: 28.03.2013
Сообщений: 54
26.04.2013, 18:16
Из-за того что Results инициализируется, если закрыть главное окно, то процесс вешается и не завершается.
Либо дописать эту часть кода и закрывать это окно, либо чтобы программа завершалась из главного окна надо приделать туда событие Closed и...
C#
1
2
Application app = Application.Current;
            app.Shutdown();
Добавлено через 2 минуты
Цитата Сообщение от vladimir8686 Посмотреть сообщение
но я посчитал код избыточным
Все элементы окна уже созданы при загрузке программы... получать их снова и снова нету смысла - проще передать в нужный метод.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.04.2013, 18:16
Помогаю со студенческими работами здесь

StackOverflowException в Interface
Здравствуйте! Есть два интерфейса в разных .cs namespace Deposit { interface IPerson { int...

StackOverflowException в свойствах
Здравствуйте! Возник вопрос:не очень понимаю в честь чего в моем свойстве Price при установлении значения выпадает StackOverflow. Текст...

System.StackOverflowException
Создал рекурсивную функцию. Рекурсию нужно использовать в четырех местах, в общем, код ниже. Программа работает адекватно, если оставляю...

System.StackOverflowException
class Program { class Man { public int age { get; set; } public...

Ошибка StackOverflowException
Добрый вечер. Имею статичный класс Setting, в нём статичное свойство NowColor и конструктор класса. static class Settings{ ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru