Что такое отзыв?

Что такое отзыв и как он осуществлен в C#?

125
задан cam 26 January 2010 в 14:00
поделиться

7 ответов

В компьютерном программировании обратный вызов - это исполняемый код , который передается в качестве аргумента на другой код .

Wikipedia: Обратный вызов (компьютерная наука)

C# имеет для этой цели делегатов. Они интенсивно используются с событиями -, так как событие может автоматически вызывать ряд вложенных делегатов (обработчиков событий).

112
ответ дан 24 November 2019 в 00:55
поделиться

, вероятно, не определение словаря, но обратный вызов обычно относится к функции, которая является внешним на определенный объект, хранятся и затем вызывается определенное событие.

Пример может быть при создании кнопки UI, она хранит ссылку на функцию, которая выполняет действие. Действие обрабатывается другой частью кода, но когда нажата кнопка, вызывается обратный вызов, и это вызывает действие для выполнения.

C #, вместо того, чтобы использовать термин «обратный вызов» использует «события» и «делегатов», и вы можете узнать больше о делегатах здесь .

1
ответ дан 24 November 2019 в 00:55
поделиться

Определение

A обратный вызов - исполняемый код, который передается как аргумент для другого кода.

Реализация

// Parent can Read
public class Parent
{
    public string Read(){ /*reads here*/ };
}

// Child need Info
public class Child
{
    private string information;
    // declare a Delegate
    delegate string GetInfo();
    // use an instance of the declared Delegate
    public GetInfo GetMeInformation;

    public void ObtainInfo()
    {
        // Child will use the Parent capabilities via the Delegate
        information = GetMeInformation();
    }
}

Использование

Parent Peter = new Parent();
Child Johny = new Child();

// Tell Johny from where to obtain info
Johny.GetMeInformation = Peter.Read;

Johny.ObtainInfo(); // here Johny 'asks' Peter to read

Ссылки

45
ответ дан 24 November 2019 в 00:55
поделиться

Обратный вызов - это функция, которая будет вызвана, когда процесс выполнит определенную задачу.

Использование обратного вызова обычно происходит в асинхронной логике.

Для создания обратного вызова на C# необходимо хранить адрес функции внутри переменной. Это достигается с помощью делегата или новой лямбда-семантической функции или действия .

    public delegate void WorkCompletedCallBack(string result);

    public void DoWork(WorkCompletedCallBack callback)
    {
        callback("Hello world");
    }

    public void Test()
    {
        WorkCompletedCallBack callback = TestCallBack; // Notice that I am referencing a method without its parameter
        DoWork(callback);
    }

    public void TestCallBack(string result)
    {
        Console.WriteLine(result);
    }

В сегодняшнем C# это можно было сделать с помощью лямбда типа:

    public void DoWork(Action<string> callback)
    {
        callback("Hello world");
    }

    public void Test()
    {
        DoWork((result) => Console.WriteLine(result));
    }
78
ответ дан 24 November 2019 в 00:55
поделиться

Обратный вызов - это указатель функции, который вы Перейти к другой функции. Функция, которую вы вызываете, будет «обратный вызов» (выполнить) другую функцию, когда она завершила.

Проверьте это ссылка.

10
ответ дан 24 November 2019 в 00:55
поделиться

Обратный вызов позволяет пройти исполняемый код в качестве аргумента в другой код. В C и C ++ это реализуется как указатель функции. В .NET Вы использовали делегат для управления указателями функций.

Несколько применений включают сигнализацию ошибок и контроль над тем, как функция действует или нет.

Википедия

0
ответ дан 24 November 2019 в 00:55
поделиться

Если вы обратитесь к обратным вызовам ASP.NET:

В модели по умолчанию для веб-сайта ASP.NET Страницы, пользователь взаимодействует со страницей и нажимает кнопку или выполняет некоторые Другие действия, которые приводят к Отсутствие. Страница и ее контроль повторно созданы, код страницы работает на сервер и новая версия Страница отображается в браузере. Однако в некоторых ситуациях это полезно запустить серверный код из клиент без выполнения обратной связи. Если клиентский скрипт на странице поддержание некоторой государственной информации (Например, значения локальной переменной), Размещение страницы и получив новый Копия ее разрушает это состояние. Кроме того, отходы страницы представлены обработка над головой, которая может уменьшаться производительность и заставить пользователю ждать для страницы, которая будет обработана и повторно создан.

, чтобы избежать потери государства клиента и не понести обработку над головой сервер круглый стол, вы можете кодировать Веб-страница ASP.NET, чтобы она могла Выполните обратные вызовы клиентов. В клиенте Обратный вызов, функция клиента-скрипта Отправляет запрос на сеть ASP.NET страница. Веб-страница запускается модифицированным Версия его нормального жизненного цикла. То страница инициирована и его контроль и другие участники созданы, а затем Специально отмеченный метод вызывается. Способ выполняет обработку что вы закодировали, а затем возвращает Значение браузера, которое можно прочитать другим клиентским скриптом функцией. На протяжении всего этого процесса страница жить в браузере.

Источник: http://msdn.microsoft.com/en-us/library/ms178208.aspx

Если вы ссылаетесь на обратные вызовы в коде:

обратные вызовы часто делегаты к методам, которые являются Вызывается, когда конкретная операция завершилась или выполняет подфункцию. Вы часто найдете их в асинхронных операциях. Это принцип программирования, который вы можете найти практически в каждом языке кодирования.

Здесь подробнее: http://msdn.microsoft.com/en-us/library/ms173172.aspx

7
ответ дан 24 November 2019 в 00:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: