Дайте мне знать, если я не понимаю вопроса. Поэтому watcher.Changed использует делегата. Таким образом, вы передаете блок кода для выполнения, когда они получают определенное действие в этой точке. Вы просто передаете их в код для запуска.
Вот немного более простой пример.
static void Main(string[] args)
{
DisplayString();
Console.ReadLine();
}
public static void DisplayString()
{
RunAction( (textToDisplay) =>
{
Console.Write(textToDisplay);
});
}
private static void RunAction(Action<string> action)
{
action("This Is A Test");
}
Так что в Action<string>;
говорится, что мой делегат ожидает строку. Который передается здесь
action("This Is A Test");
Итак, в вашем примере есть код
открытый делегат void FileSystemEventHandler (отправитель объекта, FileSystemEventArgs e);
Это означает, что код передает вам те два объекта, которые вы используете через (s, e)
Итак, наблюдатель. Изменено объявлено
Blockquote
публичное событие FileSystemEventHandler Изменено;