|
0 / 2 / 1
Регистрация: 19.09.2013
Сообщений: 464
|
|
Поясните суть LET и GET для пользовательских классов30.09.2015, 08:38. Показов 8274. Ответов 31
Метки нет (Все метки)
Привет.
Появилась первый раз необходимость написать собственный класс. До этого ни разу это не делал на VB. Может кто-нить ПОНЯТНО объяснить эти LET и GET...а то найденые примеры мелкомягких как обычно ничего не объясняют, а только путают...Можно объяснить это на примитивнейших примерах? Без инициализаций окон и получений имен файлов? И если при этом исползуются слова "эта функция GET используется для получения", то пояснить, кто получатель - программа-класс или пользователь (код, где используется класс). Фу, вроде все проблемы описал )) Обобщу - прошу понятное объяснение LET и GET.
0
|
|
| 30.09.2015, 08:38 | |
|
Ответы с готовыми решениями:
31
IDisposable для пользовательских классов. Разобрать пример кода Поясните слегка суть задачи Ввод текста, поясните суть EOF |
|
Супер-модератор
|
||||||
| 30.09.2015, 09:10 | ||||||
Сообщение было отмечено Памирыч как решение
Решение
Не понимаю, что за претензии к Microsoft-у... Фирменные объяснения вполне внятны.
Но попробую что-то сказать от себя. При создании класса можно просто "не заморачиваться" и объявить поля как public. Доступ к этим полям будет обычным Объект.Имя_Поля= Но если хочется: 1) Сделать проверку данных при присвлении 2) Создать поле Read-Only или Write-Only то использование public не поможет. Нужно создавать процедуры GET и LET/SET (последняя - в случае, когда значение поля есть объект). Принцип примерно таков:
1
|
||||||
|
0 / 2 / 1
Регистрация: 19.09.2013
Сообщений: 464
|
|
| 30.09.2015, 09:15 [ТС] | |
|
Благодарю за ответ.
А теперь можно ли пояснить - что это вообще такое - LET и GET? Именно это меня интересует...простыми, доступными для нубов словами, типа "LET - используется для...Она делает это так, а это - так..." Области видимости, проверки - это все не нужно, только понятное описание LET и GET
0
|
|
|
Супер-модератор
|
|
| 30.09.2015, 09:30 | |
|
LET и GET - служебные процедуры. Они вызываются неявно. Когда пишешь Obj.MyProp=111 , вызывается Property Let с параметром 111. Когда пишешь x=Obj.MyProp вывзывается Property Get.
0
|
|
|
0 / 2 / 1
Регистрация: 19.09.2013
Сообщений: 464
|
|
| 30.09.2015, 09:36 [ТС] | |
|
Еще раз благодарю, что вы пытаетесь помочь. Одно это уже заслуживает уважения. Но, как я писал выше, мне нужно описать, что это...
Представьте, что я ни разу не программировал дальше MsgBox (2*2=4)...Давайте я попробую переформулировать вопросы: 1. Для чего нужна GET; 2. Для чего нужна LET; 3. Пример для GET - в примере построчное описание того, что происходит, как-то: "Функция принимает аргумент вызывающей процедуры и присваивает его тому-то и тому-то. Это позволяет в дальнейшем...." 4. Аналогично для LET 3. По-детски объяснить. Ибо во всех примерах туда что-то передается, но я не понимаю что и для чего, и что с этим переданным аргументом происходит, и для чего это надо, и как это все использовать, и в каком вообще случае.
0
|
|
|
Супер-модератор
|
|
| 30.09.2015, 09:53 | |
|
Если Вы не продвинулись дальше MsgBox, то Вам нужно:
1) усвоить что такое процедуры и функции, чем они отличаются друг от друга и для чего используются 2) что такое объекты а уже потом вернуться к Get/Let, если в этом будет необходимость. Объяснить это в двух словах не получится - Вам нужно читать, программировать и думать.
0
|
|
|
0 / 2 / 1
Регистрация: 19.09.2013
Сообщений: 464
|
|
| 30.09.2015, 09:59 [ТС] | |
|
Я только на VB не работал с кастомными классами. Обычно я под Адроид делал проги.
Программирую много на VBA, но никогда до сегодня не возникало необходимости делать свои классы. Меня интересуют именно LET и GET и их детское описание на микропримере. Остальные аспекты программирования не нужны.
0
|
|
|
0 / 2 / 1
Регистрация: 19.09.2013
Сообщений: 464
|
|
| 30.09.2015, 10:37 [ТС] | |
|
Ну вот то и непонятно ))
Просто написать класс, который будет что-то делать с передаваемыми ему аргументами, выдавать результаты - это все понятно. Например, пишу класс, который будет проверять наличие русских букв в строке, потом создаю его экземпляр, кидаю ему строку и из него получаю ответ, например, False/True. Никаких летов и гетов я тут не использую. Непонятно именно ЛЕТ и ГЕТ - для чего они, что с ними делать и как это использовать в работе.
0
|
|
|
Супер-модератор
|
|
| 30.09.2015, 10:48 | |
|
В твоем примере класс не использует полей, поэтому ему и не нужны Get/Let. Я же написал - эти конструкции используются для полей (свойств). А в твоем примере свойств нет - только метод, который проверяет наличие русских букв. Кстати, тут и класс не нужен - достаточно процедуры.
Интересно, а на андроиде ты на чем программировал? На на Jave?
0
|
|
|
0 / 2 / 1
Регистрация: 19.09.2013
Сообщений: 464
|
|
| 30.09.2015, 10:55 [ТС] | |
|
На андроиде - на Андроиде (джава под Андроид), изысканные извращения с массивами ((
Я в общем понимаю, что Лет и Гет нужны для свойств класса. Это мне и надо понятно и по-детски описать, ибо именно это я и не понимаю детально - что и как каждая эта псевдофункция делает. Я ж говорю - написать пример и написать для каждой его строчки "Получаем ..... заносим это в память...используется для...." Общее описание не нужно, оно мне непонятно. Было б понятно - не пришел бы сюда ))) Добавлено через 3 минуты Вот, нашел пример. Можно ли на его основе разжевать? То, что там приводится - непонятно. http://www.firststeps.ru/vba/excel/r.php?20
0
|
|
|
0 / 2 / 1
Регистрация: 19.09.2013
Сообщений: 464
|
|
| 30.09.2015, 11:01 [ТС] | |
|
Ну я не знаю, как еще написать, что мне непонятно ))
Вот выше ссылка на пример. Можно ли его построчно объяснить, но не для программиста, а для нуба?
0
|
|
|
Супер-модератор
|
||||||
| 30.09.2015, 11:50 | ||||||
0
|
||||||
|
0 / 2 / 1
Регистрация: 19.09.2013
Сообщений: 464
|
|
| 30.09.2015, 11:56 [ТС] | |
|
Ага. Благодарю.
Правильно ли я понимаю следующее: Строка 9 - именно в ней происходит присвоение свойству значения? Строка 13 - непонятно, что за S тут и откуда в ней должно появится значение, которое будет присвоено свойству.
0
|
|
|
Супер-модератор
|
|||||||||||
| 30.09.2015, 12:21 | |||||||||||
|
В строке 9 берется значение локальной переменной и возвращается как результат вызова Property Get. В реальности это произойдет, когда будет выполнено что-то вроде:
Вообще все это хорошо будет видно в отладчике
0
|
|||||||||||
|
0 / 2 / 1
Регистрация: 19.09.2013
Сообщений: 464
|
|
| 30.09.2015, 12:29 [ТС] | |
|
О! Вот, то, что требовалось!
Осталось понять в примере вызов InputBox. Как я понял, его вызов съэмулировал это Имя=Obj.PipleName, правильно?
0
|
|
|
0 / 2 / 1
Регистрация: 19.09.2013
Сообщений: 464
|
|
| 30.09.2015, 15:00 [ТС] | |
|
Ясно.
Теперь еще по Лет.. Строчка 13 - непонятен механизм...Т.е. если я вызываю Obj.PipleName=zzz, то zzz - это входящий аргумент (по логике работы с функциями), а внутри - просто идет присвоение этого значения какому-либо полю (свойству), правильно?
0
|
|
|
Супер-модератор
|
|
| 30.09.2015, 15:09 | |
|
0
|
|
| 30.09.2015, 15:09 | |
|
Помогаю со студенческими работами здесь
20
Копирование пользовательских классов Преобразование пользовательских классов Массивы пользовательских классов. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|
|
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
|
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|