C# получить ретурн подскажите

svaminar

Client
Регистрация
21.08.2013
Сообщения
834
Благодарностей
379
Баллы
63
Есть кусок кода
Код:
// Параметры для текстовой рекапчи
//Список с текстовыми ответами на рекапчу
IZennoList lsTextAnswers = project.Lists["reCAPTCHA2"];
// Минимальное количество совпадений в ответах, при котором считаем ответ верным
int minTextCount = 5;
// Максимальное количество фраз на которые кликаем
int maxTextClickCount = 5;
// Сохранять новые задания в файл
bool saveNewTextTasks = true;
//Файл куда сохраняем новые задания
string newTextTasksFile = project.Directory+@"\newRecaptcha2TextTasks.txt";

// Основные параметры

// время ожидания
var waitTime = 350;
var waitTime2 = 2600;
// количество попыток распознать
var tryRecognize = 6;
// количество попыток загрузить элемент
var tryLoadElement = 30;
// показывать сообщения о прогрессе распознавания
var needShowMessages = false;
// проверять корректность распознанного ответа
var needToCheck = true;

// Вспомогательные переменные

// вкладка
var tab = instance.ActiveTab;
// поздравляем, вы не робот
var success = false;
// аудио файл
var file = string.Empty;
// файл был удален
var fileDeleted = true;
// ответ на аудио каптчу
var answer = string.Empty;
// новый вид рекаптчи 2
var isNewView = true;
// рекаптча 1
var isRecaptcha1 = false;
// время вышло
var timeout = false;
// ошибка загрузки файла
var fileLoadingError = false;
// cписок урлов скаченных файлов
var usedURLs = new List<string>();
// Текстовая капча или нет
bool isTextCaptcha = false;


// Распознаем текстовую капчу
Action RecognizeTextCaptcha = () =>
{
    // Строка вопроса
    string question = tab.FindElementByAttribute("div", "class", "rc-text-desc-wrapper", "regexp", 0).FirstChild.InnerText;
    return question.ToString();
    // Список элементов с фразами
    List<HtmlElement> phrases = tab.FindElementsByXPath("//table[@class='rc-text-choices']/descendant::td").Elements.ToList();
    // Распарсенная строка с ответами
    string answers = String.Join(Environment.NewLine, lsTextAnswers.Where(a => a.StartsWith(question, StringComparison.Ordinal)).ToArray());
    // Выбираем фразы где есть совпадения с ответами вместе с количеством совпадений и сортируем их по убыванию
    List<KeyValuePair<int, HtmlElement>> goodPhrases =
        phrases.Select(a => new KeyValuePair<int, HtmlElement>(Regex.Matches(answers, a.InnerHtml).Count, a)).
            Where(a => a.Key >= minTextCount).OrderByDescending(a => a.Key).ToList();

    //Кликаем не больше чем на maxTextClickCount фраз
    int i = 0;
    foreach (var phrase in goodPhrases)
    {
        i++;
        phrase.Value.Click();
        if (i >= maxTextClickCount) break;
    }

    // Если включено сохранение новых заданий, проверяем его на уникальность и сохраняем в файл
    if (saveNewTextTasks)
    {
        string taskStr = question + ":" + String.Join(";", phrases.Select(a => a.InnerHtml).ToArray());
        if (!lsTextAnswers.Contains(taskStr))
            FileSystem.FileAppendString(newTextTasksFile, taskStr);
    }
 
};
Подскажите как сделать
return question.ToString(); (строка 58 )

в коде я написал так но ретурн не работает.
Подскажите как правильно написать
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
я тоже когда-то пытался. похоже с делегатов нельзя отретурнить. отправь просто в лог то, что хочешь узнать
 

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 268
Баллы
113
Код:
Func<int,int> Summa;
        Summa  = (x,y)=>{
           return x+y;
        };
var result = Summa(2,3); // Результат 5
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Код:
Func<int,int> Summa;
        Summa  = (x,y)=>{
           return x+y;
        };
var result = Summa(2,3); // Результат 5
а если делегат вызывается как процедура?
можно как-то полностью из сниппета выйти из делегата?
 
Регистрация
08.07.2015
Сообщения
2 848
Благодарностей
712
Баллы
113
Есть кусок кода
Код:
// Параметры для текстовой рекапчи
//Список с текстовыми ответами на рекапчу
IZennoList lsTextAnswers = project.Lists["reCAPTCHA2"];
// Минимальное количество совпадений в ответах, при котором считаем ответ верным
int minTextCount = 5;
// Максимальное количество фраз на которые кликаем
int maxTextClickCount = 5;
// Сохранять новые задания в файл
bool saveNewTextTasks = true;
//Файл куда сохраняем новые задания
string newTextTasksFile = project.Directory+@"\newRecaptcha2TextTasks.txt";

// Основные параметры

// время ожидания
var waitTime = 350;
var waitTime2 = 2600;
// количество попыток распознать
var tryRecognize = 6;
// количество попыток загрузить элемент
var tryLoadElement = 30;
// показывать сообщения о прогрессе распознавания
var needShowMessages = false;
// проверять корректность распознанного ответа
var needToCheck = true;

// Вспомогательные переменные

// вкладка
var tab = instance.ActiveTab;
// поздравляем, вы не робот
var success = false;
// аудио файл
var file = string.Empty;
// файл был удален
var fileDeleted = true;
// ответ на аудио каптчу
var answer = string.Empty;
// новый вид рекаптчи 2
var isNewView = true;
// рекаптча 1
var isRecaptcha1 = false;
// время вышло
var timeout = false;
// ошибка загрузки файла
var fileLoadingError = false;
// cписок урлов скаченных файлов
var usedURLs = new List<string>();
// Текстовая капча или нет
bool isTextCaptcha = false;


// Распознаем текстовую капчу
Action RecognizeTextCaptcha = () =>
{
    // Строка вопроса
    string question = tab.FindElementByAttribute("div", "class", "rc-text-desc-wrapper", "regexp", 0).FirstChild.InnerText;
    return question.ToString();
    // Список элементов с фразами
    List<HtmlElement> phrases = tab.FindElementsByXPath("//table[@class='rc-text-choices']/descendant::td").Elements.ToList();
    // Распарсенная строка с ответами
    string answers = String.Join(Environment.NewLine, lsTextAnswers.Where(a => a.StartsWith(question, StringComparison.Ordinal)).ToArray());
    // Выбираем фразы где есть совпадения с ответами вместе с количеством совпадений и сортируем их по убыванию
    List<KeyValuePair<int, HtmlElement>> goodPhrases =
        phrases.Select(a => new KeyValuePair<int, HtmlElement>(Regex.Matches(answers, a.InnerHtml).Count, a)).
            Where(a => a.Key >= minTextCount).OrderByDescending(a => a.Key).ToList();

    //Кликаем не больше чем на maxTextClickCount фраз
    int i = 0;
    foreach (var phrase in goodPhrases)
    {
        i++;
        phrase.Value.Click();
        if (i >= maxTextClickCount) break;
    }

    // Если включено сохранение новых заданий, проверяем его на уникальность и сохраняем в файл
    if (saveNewTextTasks)
    {
        string taskStr = question + ":" + String.Join(";", phrases.Select(a => a.InnerHtml).ToArray());
        if (!lsTextAnswers.Contains(taskStr))
            FileSystem.FileAppendString(newTextTasksFile, taskStr);
    }

};
Привет БРО! Я думаю такое вообще не следует тут выкладывать, можно же в скрытом разделе, хоть капча дольше жить будет, гуглы посмотрят и сделают выводы!
 

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