C# код (Си шарп код .net)
Пожалуйста, ознакомьтесь с Правилами использования материалов на данном ресурсе
Оглавление
Описание
Данный экшен позволяет вставлять в проект куски кода написанные на популярном языке программирования C# и тем самым многократно расширять функциональность ZennoPoster и область его использования.
C# - объектно-ориентированный язык, но в данном экшене не используются все преимущества такого подхода (классы, наследования) и код исполняется последовательно за исключением использования классов и публичных переменных из Директивы using и общий код
Как добавить действие в проект?
Через контекстное меню Добавить действие → Свой код → C# код
Либо воспользуйтесь умным поиском.
Где это можно применить?
Практически любые действия кубиков можно заменить аналогичными исполняемыми в C# при этом ускоряется разработка и эффективность выполнения кода.
Использование любых разработок на C# в своём проекте.
Интеграция сторонних библиотек и применение их в коде.
Как работать с экшеном?
Кубик Свой C# код представляет собой обычный текстовый редактор с базовой подсветкой кода.
На вход можно использовать любые переменные проекта (Работа с переменными ), а результат также сохранять в переменных, в текстовых файлах, таблицах и базах данных. Для использования методов и свойств проекта используется сущность project
, а для работы с браузером используется сущность instance
.
Если Вы хотите использовать переменную проекта в коде, то вызывать её надо так - project.Variables["counter"].Value
, где counter - имя переменной.
Контекстное меню
Правым кликом по окну кубика открывается контекстное меню, которое имеет следующие опции:
Отменить\Повторить
Отменяет последнее изменение в коде. Если отмена была сделана неправильно, то можно повторить отмененный ввод. Важно учесть, что данные действия работают только в коде окна C# и не вызывают изменений в других кубиках. Для аналогичной функции в рабочей области для работы с кубиками есть подобные действия на тулбаре ProjectMaker.
Вырезать\Копировать\Вставить\Удалить
Стандартные действия по работе с кодом как с текстом.
Закомментировать\Отменить комментирование
Комментирование кода крайне полезный функционал. Особенно в больших проектах или при отладке кода. В комментариях можно разместить информацию об изменениях, связях, функционале строк или частей кода. Комментариями можно быстро включать/отключать отдельные строки или куски кода для проверки ошибок и при тестировании. Для комментирования части кода нужно его выделить и нажать этот пункт.
Нумерация строк
Включает/отключает нумерацию строк, которая важна для быстрой навигации по коду, для нахождения ошибок после получения информации об ошибке в логах. Но на небольших проектах нумерацию можно отключить чтобы расширить рабочее пространство.
В настройках программы можно выставить поведение по умолчанию.
Перенос строк
Включает автоматический перенос строк, если строка не помещается в текущее окно.
Ниже можно увидеть пример одного и того же окна с включенной и выключенной настройкой переноса строк.
Настройка включена
Настройка выключена
Перейти к строке
В больших проектах важно быстро найти ошибочный участок кода. Ошибки выводятся в логах программы. При клике на этот элемент меню открывается диалоговое окно, где можно ввести номер линии и номер столбца. При подтверждении ввода курсор переводится точно в указанное место в коде кубика.
Поиск
Открывает окно поиска по коду этого экшена. Искать можно с учетом параметров: учитывать регистр или нет, слово целиком, обратное направление поиска и использовать регулярные выражения или знаки подстановки при поиске. Нажимая на кнопку Найти далее курсор переходит на первое найденное значение, повторное нажатие переводит курсор на следующее найденное значение и т. д.
Замена
Похоже на Поиск, но сразу после нахождения искомого значения производится его замена на введенное значение. Работать может в пошаговом режиме, либо сразу заменить все найденные вхождения нажатием кнопки Заменить всё
Вставить C# сниппет
В место где сейчас находится курсор будет вставлено всё содержимое выбранного файла.
Изначально этот пункт меню не отображается, чтобы он появился, надо в Директорию C# сниппетов добавить хотя бы один файл либо сохранить фрагмент кода с помощью функции Сохранить в C# сниппет (описано ниже).
Файлы в директории можно перемещать в папки и таким образом удобно их группировать.
Сохранить в C# сниппет
Позволяет сохранять выделенный фрагмент кода в TXT-файл как сниппет для дальнейшего использования и быстрой вставки в других проектах.
Установить значение из переменной
При наведении курсора на этот пункт контекстного меню открывается список всех Своих и Авто-сгенерированных переменных проекта. Выбрав нужную переменную в редакторе появляется конструкция вида project.Variables["myVar"].Value
, которая представляет собой значение переменной myVar
.
Это значение всегда имеет строковый тип и для его использовании в качестве других типов необходима конвертация.
Не возвращать значение
Отключение этого чекбокса позволяет передавать результат выполнения кода с помощью оператора возврата return
.
Положить результат в переменную
Из этого списка можно подставить любую переменную в которую сохранится значение по результату выполнения return
, конечно, если отключен чекбокс из предыдущего пункта.
Настройки
Для установки настроек по умолчанию для кубика “С#“ служит эта часть настроек программы.
Конвертация экшенов в код
Важно отметить, что в ZennoPoster имеется функционал позволяющий новичкам быстро освоиться с C# и начать использовать этот язык уже в самом начале своей работы с программой. Много экшенов можно конвертировать в C# код и в дальнейшем работать с полученным кодом аналогичным по функционалу кубика. Для этого достаточно после создания кубика и установки его свойств нажать на Конвертировать в C# в контекстном меню и затем вставить скопированный код в кубик C# код.
Отладка C#
В сложных и больших фрагментах C# часто бывает сложно быстро найти ошибку. Поэтому необходима отладка (debug) C# кода с пошаговым мониторингом изменения переменных и данных в списках, таблицах и базах данных. Также как и в основном проекте ZennoPoster, каждый экшен C# можно отладить в Project Maker с помощью установки одной или нескольких точек останова.
Для добавления точки останова нужно кликнуть в поле слева от редактора кода напротив нужной строки. После этого нажатием Далее запускаем исполнение кубика и затем с помощью навигации в панели над редактором кода в пошаговом режиме или в режиме до следующей точки останова проверяем работу кода, смотрим изменения переменных в Окне переменных и это помогает эффективно исправлять ошибки.
Примеры использования
Обучение программированию на C# выходит за рамки данного документа, однако можно дать несколько советов и практических примеров, которые часто используются в практике пользователей ZennoPoster при работе с C#.
Арифметические действия с целыми числами
int value1 = Convert.ToInt32(project.Variables["value1"].Value);
int value2 = Convert.ToInt32(project.Variables["value2"].Value);
int value3 = value1 + value2; //или value1 - value2 или value1 * value2 и т. д.
return value3.ToString(); //сумма двух чисел
Округление результата деления
float value1 = Convert.ToSingle(project.Variables["value1"].Value);
float value2 = Convert.ToSingle(project.Variables["value2"].Value);
return Math.Ceiling(value1/value2); // округление в большую сторону
//или
return Math.Ground(value1/value2); // округление в меньшую сторону
Создание списка со случайными числами от 1 до 10
var list = project.Lists["numbers"];//обращаемся к списку списков проекта для получения сущности одного из них.
list.Clear();//очищаем список перед заполнением
int value;//объясляем цельночисленную переменную
List <string> tempList = new List<string> ();//создаём новый список из строк, но этот список существует только в рамках этого экшена и будет уничтожен после выполнения экшена
for (int i = 0; i < 10; i++) {//цикл из 10 иттераций
value = i;//присваиваем значение счетчика цикла чтобы не имзменять его
value++;//увеличиваем на 1 значение переменной
tempList.Add(value.ToString());//добавляем во временный список строковое значение числа
}//повторяем так 10 раз
tempList.Shuffle();//перемешиваем список
list.AddRange(tempList);//добавляем в результирующий список перемешанный список чисел от 1 до 10
Получение случайной строки из файла с доступами к аккаунтам и разделение её на логин и пароль
Оператор return
можно использовать для возврата null. Ключевое слово null является литералом, представляющим пустую ссылку, которая не ссылается на объект. При возврате null экшен C# выйдет по красной линии и это часто удобно использовать для создания взаимосвязей с другими кубиками. В примере ниже при пустом списке аккаунтов можно вывести предупреждение (хотя тоже самое можно сделать и внутри C# с помощью метода project.SendInfoToLog("Пустой список", true);
) и заполнить пустой список из TXT новыми доступами.
Работа с HTML элементами
Через C# можно работать с методами объекта instace
точно также как и со стандартными кубиками, но на на более высоком уровне. В примере ниже получаем коллекцию HTML- элементов и добавляем в список ссылки с их дочерних элементов.
Работа с файлами: получение разрешения (ширина x высота) изображения
Работа с OwnCode и с изображениями: наложение полупрозрачного “водяного знака” по центру
И собственно класс SetImageOpacity
, который нужно вставить в классе OwnCode.CommonCode