Just Do It!
|
||||||
1 | ||||||
.NET 4.x Ошибка: "Не удаётся создать новую страницу для защиты стека"02.08.2022, 15:39. Показов 7176. Ответов 9
Метки нет (Все метки)
Что исправить в коде?
есть такой класс:
выскакивает такая ошибка:
0
|
02.08.2022, 15:39 | |
Ответы с готовыми решениями:
9
"Не удаётся создать новую копию защиты для стека" или как переложить данные в кучу Не удается создать новую страницу защиты для стека Создать стек для символов. Максимальный размер стека вводится с экрана. Создать функции для ввода и вывода элементов стека. Ввести эталонный символ. Не могу создать новую страницу |
Администратор
|
||||||
02.08.2022, 16:01 | 2 | |||||
Сообщение было отмечено XLAT как решение
Решение
XLAT, возможно причина в бесконечной рекурсии в этих строках
1
|
Just Do It!
|
|||||||||||
02.08.2022, 16:32 [ТС] | 5 | ||||||||||
спаб, нужный совет.
Добавлено через 14 минут ок, раз переменную я вынес в интерфейс, знам её можно модифицировать извне, пытаю тут: Кликните здесь для просмотра всего текста
вот в этом месте:
0
|
Администратор
|
||||||
02.08.2022, 17:57 | 6 | |||||
XLAT, свойство pf имеет тип Point. Это значимый тип. Значит при чтении мы получаем копию значения из класса. Следовательно менять значение X мы будем для временной копии. Это очевидно не то что вы хотели. Чтобы защитить нас от ошибок компилятор и выдает эту ошибку.
Исправляется просто - создавайте новую Point.
1
|
Just Do It!
|
||||||
02.08.2022, 20:20 [ТС] | 7 | |||||
здесь всё ясно.
но делать релокацию памяти на таком пустяке это же уг( если в шарпе есть GC, то значит он должен ВСЕГДА работать? в мои крестомозги такое не влазеит. потом кто-то будет недоумевать почему шарп тормозит, а кресты нет) OwenGlendower, а что можно по этому поводу с ref замутить, чтобы лишний раз GC не беспокоить? Добавлено через 2 минуты такой вар без new
но, например, в крестах вызов new - операция дорогая: до 1000 асм команд. а как тут - в C#? т.е. делать 5 пересылок, чтобы модифицировать одно поле в Point, будет в разы эффективнее, чем вызов new. Или нет?
0
|
Администратор
|
|||||||||||
02.08.2022, 21:18 | 8 | ||||||||||
Сообщение было отмечено XLAT как решение
Решение
Частично соглашусь. Частично потому что для значимого типа затраты ресурсов незначительны.
Можно сделать так:
Без понятия. Нужно замерять в реальных условиях.
1
|
Just Do It!
|
||||||
02.08.2022, 23:38 [ТС] | 9 | |||||
смотрю сюда и делаю как тут:
Код
error CS1519: Invalid token 'ref' in class, struct, or interface member declaration Код
C# версии 7.0 был выпущен вместе с Visual Studio 2017. Ниже приведены некоторые из новых функций: ... Локальные переменные и возвращаемые значения Ref ... ну, вообщем не сильно и хотелось ломать инкапсуляцию))
0
|
Администратор
|
|
03.08.2022, 00:02 | 10 |
XLAT, если нет возможности перейти на более новую версию VS где можно использовать новый .NET или хотя бы установить NuGet пакет с компилятором, то тогда используйте решение с отдельными свойствами для X и Y.
1
|
03.08.2022, 00:02 | |
03.08.2022, 00:02 | |
Помогаю со студенческими работами здесь
10
Как создать новую страницу на Битриксе? Как создать новую страницу с контентом? Как создать новую веб-страницу в MVC3 Взять данные из буфера и создать новую страницу Как создать новую html страницу через php Нужно создать новую страницу с исходным кодом из Textarea Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |