Could someone explain what might happen if you don\'t Dispose some IDisposable entity (by using or direct Dispose cal
Any number of things might happen because a class if free to implement Dispose however they choose to.
What is usually disposed is not managed resources (which usually take care of themselves) but unmanaged ones such as database connections, file locks, etc.
Generally speaking Disposed is called in the finalizer when garbage collection gets around to it, however for instance if you write to a file and you don't close it (which Dispose does) then you're preventing anything other program (including other parts of your code in the same program) from opening that file (except possibly in read-only mode).
If you hold on to database connections for longer than necessary you could hit the max open connections and stop your app from using the database.
In generally if a class implements IDisposable it's saying that I have something that needs to be disposed, and it should be disposed as soon as possible, not waiting for the garbage collector to come around.