Disposing of an object tells it to release all of it's unmanaged resources, so the question that you have to ask yourself is "can the object do anything meaningful without those resources". That will depend on the specifics of the object.
Most IDisposable
objects are designed such that if you try to call their methods after disposing the instance they will throw an exception, or worse, just do unexpected behavior.
It's possible for other object to still have meaningful things to do even after being disposed. As an example, a DataTable implements IDisposable, but the meaningful data tends to be stored in managed resources, not unmanaged resources. In its current implementation (which is subject to change) its Dispose
method doesn't do anything, so using it after it is disposed is just fine. (Having said that, there is no compelling reason to dispose it when you still plan to use it.)
It's also conceivable for an object to re-create whatever resource it needs after it has been disposed (that would be a bad idea, but still possible).
Having said all of that, it is considered bad practice to specifically design an object that you intend to be used even after it has been disposed, and it is also the intent of a Disposable object that you not dispose of it until you're done with it. The point here is that even though you shouldn't do it, and it will often blow up in your face, it will be because that's how the class was chosen to be implemented (to be in line with convention) not because it's a technical requirement.