Вот метод, используемый для сохранения данных в файл, который поставил меня в тупик:
public void SaveData(string filename, Action<StreamWriter> saveAction)
Документация для библиотеки описывает второй параметр как «действие делегата для обработки фактической записи данных». Однако я заблудился о том, как создать действие для StreamWriter. Я провел некоторое исследование и обнаружил, что много подобных вещей используется в качестве примеров для Action<T>
:
Action<string> s = Console.WriteLine;
И из этого я заключаю, что <T>
- это тип передаваемого параметра, а Action
- метод, который принимает этот параметр. Я знаю, что это может быть ужасно неправильно.
В основном, все, что я хочу сделать, это использовать StreamWriter.WriteLine(string line)
. Тем не менее, я не могу использовать
Action<StreamWriter> s = StreamWriter.WriteLine;
Потому что это не имеет смысла, плюс я все равно не могу ссылаться на StreamWriter.WriteLine
. Сейчас я думаю, что должен быть метод, который берет StreamWriter
из класса, о котором я не знаю. Если кто-нибудь захочет указать мне правильное направление, я буду очень признателен.
Вы можете спросить, почему я не могу просто создать свой собственный StreamWriter
и сделать это так, как я всегда это делал. Что ж, я работаю в XNA на Zune, поэтому запись в текстовый файл на самом деле довольно сложна при всех уровнях защиты (все приложения находятся в «песочнице»), а библиотеки, которые я сейчас использую, обещают сделать его гораздо более упрощено, если я могу просто понять, как эффективно использовать Action<T>
. Кроме того, я хочу учиться и быть лучше подготовленным к использованию делегатов в будущем.