функция в c# сниппете

schnaps

Client
Регистрация
07.02.2010
Сообщения
837
Благодарностей
150
Баллы
43
можно ли создавать функции в с# сниппете?
у меня не получается
Код:
static int OnWriteData(byte[] buf, int size, int nmemb, Object extraData)
{
  SockBuff = SockBuff + System.Text.Encoding.UTF8.GetString(buf);
  return size * nmemb;
}
анализатор синтаксиса подчеркивать там все начинает. подозреваю, что нельзя...
тогда вопрос кто-нибудь LibСurl самог к ЗП прислюнявить?
 

MikeWaz

Пользователь
Регистрация
08.07.2014
Сообщения
43
Благодарностей
1
Баллы
8
по поводу функции, можно сделать свою dll c функциями-хелперами, и потом ее подключить к проекту.
 

schnaps

Client
Регистрация
07.02.2010
Сообщения
837
Благодарностей
150
Баллы
43
гемморно это... функция то на пару строчек..
 

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 263
Баллы
113
use xnet.dll or vikingstudio.dll
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113

schnaps

Client
Регистрация
07.02.2010
Сообщения
837
Благодарностей
150
Баллы
43
да чтож все не так то )))))))))))))))
 
  • Спасибо
Реакции: Nick

famous1144

Client
Регистрация
27.03.2014
Сообщения
137
Благодарностей
53
Баллы
28
Из dll нельзя получить доступ к текущим переменным(project, instance и т.д.). В принципе, функцию можно хранить как замыкание(типа как переменную), но тогда надо какой-то контекст, который будет храниться между действиями, и в нем будет типа словарь(dictionary) c этими функциями. Дело за малым - сделать такой контекст.
 

famous1144

Client
Регистрация
27.03.2014
Сообщения
137
Благодарностей
53
Баллы
28
Так, а контекст-то уже есть, в новом билде запилили. Так что, если очень хочется, можно делать так:

1. В одном сниппете задаем все наши замыкания для проекта по такому типу:
Код:
project.Context["Logger"] = (Action<string>)((Text) => {
    project.SendInfoToLog("важная информация:" + Text);
});
2. Когда нужно, берем эти замыкания и выполняем:
Код:
var Logger = project.Context["Logger"] as Action<string>;
Logger("КЮ!");
 
  • Спасибо
Реакции: nicanil, galex и Nick

schnaps

Client
Регистрация
07.02.2010
Сообщения
837
Благодарностей
150
Баллы
43
я как полуграмотный преспрошу.
первым кодом оформляем функцию, тело функции в нашем случае
project.SendInfoToLog("важная информация:" + Text);
а в этой конструкции
(Action<string>)((Text) => {
Text это аргумент?
ну во втором коде все понятно, это вызов
 

famous1144

Client
Регистрация
27.03.2014
Сообщения
137
Благодарностей
53
Баллы
28
Да, телом функции будет код
Код:
project.SendInfoToLog("важная информация:" + Text);
 
  • Спасибо
Реакции: schnaps

schnaps

Client
Регистрация
07.02.2010
Сообщения
837
Благодарностей
150
Баллы
43
класс! спасибо! :bi: придется сегодня обновляться и проверять :-)
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)