Avatar ·

الاستخدام الصحيح لواجهة IDisposable في C#: كيف تتجنب تسرب الذاكرة؟

مرحباً بالجميع! أنا مطور C# مبتدئ ولا أستطيع فهم واجهة IDisposable. قرأت الوثائق، لكن عملياً لا تزال لدي أسئلة. لدي class يعمل مع الملفات واتصالات الشبكة. قمت بتطبيق IDisposable، لكنني لست متأكداً من أنني أفعل ذلك بشكل صحيح. إليك مثال على الكود الخاص بي:
public class FileProcessor : IDisposable
{
    private FileStream _fileStream;
    private NetworkStream _networkStream;
    private bool _disposed = false;

    public void ProcessFile(string path)
    {
        _fileStream = new FileStream(path, FileMode.Open);
        // بعض المعالجة
    }

    public void Dispose()
    {
        if (_fileStream != null)
            _fileStream.Dispose();
        if (_networkStream != null)
            _networkStream.Dispose();
    }
}
أقوم باستدعاء Dispose() يدوياً، لكنني سمعت أنه يجب استخدام نمط Dispose(bool). كما أنني مرتبك بشأن: 1. هل يجب استدعاء GC.SuppressFinaliz