Я задал вопрос об этом методе:
// Save an object out to the disk
public static void SerializeObject<T>(this T toSerialize, String filename)
{
XmlSerializer xmlSerializer = new XmlSerializer(toSerialize.GetType());
TextWriter textWriter = new StreamWriter(filename);
xmlSerializer.Serialize(textWriter, toSerialize);
textWriter.Close();
}
в ответ я получил это как дополнительное замечание:
Убедитесь, что вы всегдараспоряжаться одноразовыми ресурсами, такими как потоковые и текстовые читатели и писатели.Похоже, что это не так в вашем методе SerializeObject.
Итак, я могу сказать, что это покажется супер хромым для человека, который кодирует C # в течение года или двух, нопочему я должен его утилизировать?
Видит ли, что testWriter
имеет метод dispose, но разве сборщик мусора не должен об этом заботиться?Я пришел из Delphi в C #.В Delphi мне пришлось все вычистить, поэтому я не хочу быть ленивым.Мне просто сказали, что если вы заставите освободить память, которую занимают ваши объекты, это может привести к плохим вещам.Мне сказали: «Просто позвольте сборщику мусора сделать это».
- Итак, зачем мне вызывать dispose?(Я предполагаю, что это потому, что
textWriter
попадает на диск.) - Есть ли список объектов, с которыми мне нужно быть осторожнее?(Или простой способ узнать, когда мне нужно позвонить утилизировать?)