Quick Answer
Prevent use of disposed objects.
Understanding the Issue
Thrown when using disposed resources like streams or database connections. Ensure proper disposal patterns.
The Problem
This code demonstrates the issue:
Csharp
Error
var stream = new MemoryStream();
stream.Dispose();
stream.ReadByte(); // Throws
The Solution
Here's the corrected code:
Csharp
Fixed
// Solution 1: using statement
using (var stream = new MemoryStream())
{
stream.ReadByte();
} // Auto-disposed
// Solution 2: Null check after disposal
private Stream _stream;
public void Process()
{
if (_stream == null)
throw new ObjectDisposedException(nameof(_stream));
// Use stream
}
Key Takeaways
Always follow IDisposable patterns.