• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Static и Ls

  • Автор темы Автор темы Mady
  • Дата начала Дата начала
M

Mady

Всем доброго времени суток.
может кто нибудь подскажет как можно создать "типа" статичную функцию в классе, что то на подобии в Java
Код:
public class Test {
public Test() {
Main.getMsg();
}	
}

public class Main{
public static String getMsg(){
return "Сообщение";
}
}
 
Цель?
Статичные классы, как и их свойства/методы, насколько я помню, в ЛС не поддерживаются. Почему бы не создать просто статичную функцию?
 
Да статические классы не поддерживаются, а просто функцию в библиотеке создавать не пойдет так как будут "под функции" для определенного класса, те приватные функции и один основной метод.
 
Можно влепить глобальный объект и инициализировать его в блоке инициализации библиотеки. Выловить баги и пользоваться.
 
Если очень нужно, можно написать класс на java и использовать его через LS2J. Только вот цели/смысла я так и не понял.
 
LS2Java не пойдет потому что мне нужно все на LS. Я гонюсь за структурой и что бы в дальнейшем было все понятно... конечно можно было все вывести в глобальные функции библиотеки, но потом там черт ногу сломит
 
понятия статик в java и ls различаюца. в ls static функция сохраняет значения локальных переменных между вызовами.
поэтому хочеца уточнить цель подобной конструкции.

если цель - организация пространства имен, то можно создать синглтон в библиотеке, в клиентском коде вызывать его методы. будет выглядеть как статик :-)
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">code</div></div><div class="sp-body"><div class="sp-content">
Код:
(lslib) Utils.lib
[declarations]
Private Class TFake
End Class

Public Class TUtils
Sub New( fake As TFake ) ' делаем конструктор приватным
End Sub
Public Function formatDiskC() ' первый( он же последний ) статик метод
End Function
End Class

Public utils As TUtils
[initialize]
Set utils = New TUtils( Nothing )

Usage:
Use "Utils.lib"
Sub Click(Source As Button)
Call utils.formatDiskC()
End Sub
 
спс, думаю решение turumbay подходит буду пробовать.
 
turumbay , для какой цели служит Class TFake и его передача в конструктор?
 
Спасибо. Ушел рассуждать там :)

Добавлено: <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">пофлудил</div></div><div class="sp-body"><div class="sp-content">Я вообще, сначала не понял чем это решение отличается от предложенного мною (про глобальный объект).
Теперь мне кажется, что я заболел болезнью Тохи - неясно выражаться ))
Ну, другие отличия тоже есть.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab