Александр Шаргин
Делегаты на C++
Введение
Делегаты - это объектно-ориентированные указатели на функции, используемые для callback-вызовов в среде CLR фирмы Microsoft. Делегат можно связать со статической функцией или с нестатическим методом любого класса (единственное условие - совпадение сигнатуры метода с сигнатурой, указанной в описании делегата). Затем связанную с делегатом функцию или метод можно вызывать, используя стандартный синтаксис вызова функции в C++. Несколько делегатов можно связать в цепочку. Благодаря этому можно "одним махом" вызвать все связанные с ними callback-функции. Следующий пример демонстрирует применение делегатов в языке C#.
using System;
using System.IO;
namespace CSharpDelegates {
class App {
// Определяем делегат Callback,
// который принимает 1 параметр и ничего не возвращает.
public delegate void Callback(string str);
// Это метод класса App.
public void OutputToConsole(string str) {
Console.WriteLine(str);
}
// А это статический метод класса App.
public static void OutputToFile(string str) {
StreamWriter sw = new StreamWriter("output.txt", true);
sw.WriteLine(str);
sw.Close();
}
Комментарии к книге «Делегаты на C++», Александр Шаргин
Всего 0 комментариев