|
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
|
|||||||||||||||||||||
Область видимости переменной15.04.2018, 10:46. Показов 3228. Ответов 24
Метки нет (Все метки)
создаю форму
есть класс
и код формы
Вопрос: как изменить код, чтобы :
0
|
|||||||||||||||||||||
| 15.04.2018, 10:46 | |
|
Ответы с готовыми решениями:
24
Область видимости переменной Область видимости переменной в одном классе Расширить область видимости переменной, объявленной в блоке if |
|
189 / 166 / 101
Регистрация: 14.03.2018
Сообщений: 426
|
|||||||||||
| 15.04.2018, 10:59 | |||||||||||
Сообщение было отмечено rar как решение
Решение
Например, TS x1 сделать полем класса формы:
1
|
|||||||||||
|
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
|
||||||||||||||||||||||||||
| 15.04.2018, 11:09 [ТС] | ||||||||||||||||||||||||||
|
Ок я вынес вот код
у меня этот кусок
0
|
||||||||||||||||||||||||||
|
189 / 166 / 101
Регистрация: 14.03.2018
Сообщений: 426
|
|||||||||||
| 15.04.2018, 11:15 | |||||||||||
|
Ну правильно, нужные значения вносятся только лишь после нажатия кнопки button1.
Тогда нужно вынести код:
1
|
|||||||||||
|
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
|
||||||
| 15.04.2018, 11:22 [ТС] | ||||||
|
Да ! Точно! Спасибо ...
есть еще такой вопрос... делается так или нет в C# (присвоить переменные прямо в классе..) что то вроде:
0
|
||||||
|
189 / 166 / 101
Регистрация: 14.03.2018
Сообщений: 426
|
||||||
| 15.04.2018, 11:24 | ||||||
0
|
||||||
|
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
|
||||||||||||||||
| 15.04.2018, 11:30 [ТС] | ||||||||||||||||
|
то есть здесь это
Добавлено через 4 минуты написал :
0
|
||||||||||||||||
|
189 / 166 / 101
Регистрация: 14.03.2018
Сообщений: 426
|
||||||||||||
| 15.04.2018, 11:33 | ||||||||||||
|
Если в классе нет конструктора, он создаётся автоматически, а инициализация полей, в данном случае name и age, в нём и происходит. Это аналогично следующему конструктору:
Если условно, то класс - чертёж автомобиля, его спецификация. объект (экземпляр класса) - сам автомобиль.
0
|
||||||||||||
|
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
|
|||||||||||||||||
| 15.04.2018, 11:36 [ТС] | |||||||||||||||||
|
то есть запись вида
должна быть ВСЕГДА если я создал класс вида
0
|
|||||||||||||||||
|
189 / 166 / 101
Регистрация: 14.03.2018
Сообщений: 426
|
||||||||||||||||
| 15.04.2018, 11:53 | ||||||||||||||||
Сообщение было отмечено rar как решение
Решение
Да, но в первом случае поле name будет равно null, а age - нулю.
Объявлять ссылку на класс:
Кроме того, бывают ситуации, когда и сама ссылка на экземпляр класса не используется, например, если нужно лишь однократно вызвать какой-то метод, например:
если name не всегда должно быть "Raph", а age - 23.
1
|
||||||||||||||||
|
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
|
||||||||||||||||||||||||||
| 15.04.2018, 14:11 [ТС] | ||||||||||||||||||||||||||
|
Спасибо вам огромное ! буду разбирать все выше сказанное )
Все работает сейчас:
**************************************** **************************************** ** Добавлено через 2 часа 15 минут как лучше далее решить такую задачу (по способу выше): пример: как корректно записать в это
0
|
||||||||||||||||||||||||||
|
189 / 166 / 101
Регистрация: 14.03.2018
Сообщений: 426
|
||||||
| 15.04.2018, 14:18 | ||||||
|
Нужно значения полей name и age поменять?
Вполне можно так:
0
|
||||||
|
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
|
|
| 15.04.2018, 14:28 [ТС] | |
|
я изначально хочу прописать в class TS
- x1 ( x1.name="Raph", x1.age=12 ) . - x2 ( x2.name="Leo", x2.age=10 ) . - x3 ( x3.name="Mike", x3.age=14 ) . - x4 ( x4.name="Don", x4.age=15 ) . Затем к примеру в private void button1_Click(object sender, EventArgs e) - когда начну вводить x1. (мне компилятор предложит на выбор name и age , если выбираю x1.name : MessageBox.Show(x1.name.ToString()) ) он мне выдаст "Raph" - когда начну вводить x2. (мне компилятор предложит на выбор name и age , если выбираю x2.age : MessageBox.Show(x2.age.ToString()) ) он мне выдаст "10" и т.д.
0
|
|
|
189 / 166 / 101
Регистрация: 14.03.2018
Сообщений: 426
|
|
| 15.04.2018, 14:33 | |
|
Что-то я не совсем пойму, значения согласовываются на этапе выполнения, а не компиляции, если это не константы, конечно.
x1, x2, x3, x4 - это всё экземпляры класса TS должны быть?
0
|
|
|
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
|
|||||||
| 15.04.2018, 14:45 [ТС] | |||||||
|
возможно, я неверно ставлю способ решения. Добавлено через 6 минут или лучше просто создавать классы...
0
|
|||||||
|
189 / 166 / 101
Регистрация: 14.03.2018
Сообщений: 426
|
|||||||||||
| 15.04.2018, 14:49 | |||||||||||
Сообщение было отмечено rar как решение
Решение
Можно воспользоваться следующим трюком:
1
|
|||||||||||
|
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
|
|
| 15.04.2018, 14:57 [ТС] | |
|
Круто...
Именно, то что нужно Вы можете привести какую нибудь дельную ссылку где можно именно об этом "трюке" почитать подробнее? Мне хотелось бы разобраться как работает ваш пример... (и если не сложно пропишите комментарии к этим действиям (строкам) в самом коде через //)
0
|
|
|
189 / 166 / 101
Регистрация: 14.03.2018
Сообщений: 426
|
|||||||||||
| 15.04.2018, 15:20 | |||||||||||
|
Даже не знаю точно где можно почитать, но у класса EventArgs поле Empty так реализовано, видимо, оттуда я это и позаимствовал. https://msdn.microsoft.com/ru-... .110).aspx
Ну а
0
|
|||||||||||
|
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
|
|||||||||||
| 16.04.2018, 11:19 [ТС] | |||||||||||
|
вопрос про static
- почему мы используем его здесь?
0
|
|||||||||||
|
189 / 166 / 101
Регистрация: 14.03.2018
Сообщений: 426
|
|
| 16.04.2018, 11:50 | |
|
Тогда для получения ссылки на Ralph нужно будет сначала вызвать конструктор TS, в котором вызовется конструктор TS, в котором вызовется конструктор TS, в котором опять вызовется конструктор TS, и так пока не закончится стек.
0
|
|
| 16.04.2018, 11:50 | |
|
Помогаю со студенческими работами здесь
20
Область видимости Область видимости Область видимости в классах Область видимости и прочее Область видимости объекта Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
*/
#include <iostream>
#include <stack>
#include <cctype>. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|