Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём неправильно. Необходимо обновить браузер или попробовать использовать другой.
ОБСУЖДЕНИЕ
Возможна ли инициализация объекта класса в момент передачи параметра в
6 ответов
4,7 тыс.
AI-выжимка обсужденияскоро
Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.
Обзор обсужденияскоро
Разбор ответов скоро
Ключевые ответы обсуждения и их оценка появятся здесь.
Эксперты в тредескоро
Рейтинг участников скоро
Участники с сильными ответами в этой теме появятся здесь.
Codeby Academy
Практика ИБ на курсах
От пентеста до DevSecOps — программы для практиков Codeby.
LotusScript — это Вам не Java
Можно извернуться как-то так:
Код:
Dim holder As Variant
Call Me.addButton(getAgreementButton(holder)) ', где getAgreementButton — функция с кодом типа
Function getAgreementButton(holder As Variant) As Variant
Set holder = new makeAgreementButton()
Set getAgreementButton = holder
End Function
Изврат с holder вызван тем, что по выходу из процедуры/функции временные объекты виртуальной машиной утилизируются.
fedotxxl
нет, так делать нельзя
и суть не в убогости скрипта а в убогости понимания ситуации
вы передаёте только что созданный обьект, который негде не использован и нигде не присвоен
если в основном коде он реально вам НЕ НУЖЕН то передавайте Nothing а уже внутри функции создавайте его и живите им
так делать принципиально нельзя ни в одном языке - если мы заговорили о правильности кода
Ничего подобного. Утилизируются когда больше нет ссылок на объект. Так что так вполне можно:
Код:
Call Me.addButton(getAgreementButton()) ', где getAgreementButton — функция с кодом типа
Function getAgreementButton() As AgreementButton
Set getAgreementButton = new makeAgreementButton()
End Function
Предположу, что ввела в заблуждение другая ситуация. Когда внутри метода получается объект-контейнер (например NotesDatabase), а через него содержимое (NotesDocument). Типа такого:
Код:
sub foo()
if getDoc() is nothing then MsgBox "Всегда True"
end sub
function getDoc as NotesDocument
Dim db as NotesDatabase
...
Set db=ns.GetDatabase(...)
Set getDoc = db.getDocumentByUnid(...)
end function
При выходе из метода не остаётся ссылок на базу и её хэндл закрывается. Как следствие, уничтожаются LS-объекты, полученные через неё.
Предположу, что ввела в заблуждение другая ситуация. Когда внутри метода получается объект-контейнер (например NotesDatabase), а через него содержимое (NotesDocument)
через метод работать не будет. если совсем невмоготу, то можно заменить вызов Call foo(param) на Set foo = param
Код:
property set addButton() As Button
' в предположении, что добавляем кнопку в List:
Set buttons( ... ) = addButton
...
end property
...
' тогда вместо Call Me.addButton(new makeAgreementButton()) юзаем:
Set me.addButton = new makeAgreementButton()
но, имхо, минусы такого сеттера первешивают плюс от экономии строки.
И еще есть подводные камни: link removed
На данном сайте используются файлы cookie, чтобы персонализировать контент и сохранить Ваш вход в систему, если Вы зарегистрируетесь.
Продолжая использовать этот сайт, Вы соглашаетесь на использование наших файлов cookie.