• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

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

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