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

Работа с Regex

Работа с макросами


Полезные ссылки