• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Static и Ls

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

Mady

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

public class Main{
public static String getMsg(){
return "Сообщение";
}
}
 
N

nvyush

Цель?
Статичные классы, как и их свойства/методы, насколько я помню, в ЛС не поддерживаются. Почему бы не создать просто статичную функцию?
 
M

Mady

Да статические классы не поддерживаются, а просто функцию в библиотеке создавать не пойдет так как будут "под функции" для определенного класса, те приватные функции и один основной метод.
 
A

Akupaka

Можно влепить глобальный объект и инициализировать его в блоке инициализации библиотеки. Выловить баги и пользоваться.
 
N

nvyush

Если очень нужно, можно написать класс на java и использовать его через LS2J. Только вот цели/смысла я так и не понял.
 
M

Mady

LS2Java не пойдет потому что мне нужно все на LS. Я гонюсь за структурой и что бы в дальнейшем было все понятно... конечно можно было все вывести в глобальные функции библиотеки, но потом там черт ногу сломит
 
T

turumbay

понятия статик в 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
 
M

Mady

спс, думаю решение turumbay подходит буду пробовать.
 
A

Akupaka

turumbay , для какой цели служит Class TFake и его передача в конструктор?
 
A

Akupaka

Спасибо. Ушел рассуждать там :)

Добавлено: <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">Я вообще, сначала не понял чем это решение отличается от предложенного мною (про глобальный объект).
Теперь мне кажется, что я заболел болезнью Тохи - неясно выражаться ))
Ну, другие отличия тоже есть.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!