Using

Bom dia!

Eu estou desenvolvendo há algum tempo(1 ano) usando o C#, vim do JAVA e anteriormente do PHP. Estou realmente impressionado com a produtividade e até com algumas técnicas.

Agora depois da babação eu vou fazer uma pergunta que já havia feito e imagina ter entendido. Eu sou daqueles que coisas mais simples devem ser entendido completamente;

Vejo em alguns lugares a utilização de códigos como assim:
using (SQLCommand cmd = SQLCommand){
// codigos
}

É utilizada apenas para evitar o Using no escopo da classe? Ou então toda a execução do bloco incluindo os parâmetros, são finalizado e ou se a classe que implementa o IDisposable poderar liberar os recursos logo ao resolver o bloco?

Alguém que entenda poderia me dar uma pequena aula?

Ao usar using, você assegura que todo recurso instanciado dentro dos parenteses seja liberado ao fim do bloco.

Como uma regra, quando se usa um objeto que implementa a interface IDisposable, vc deve declará-lo e instanciá-lo no using.

Eu vi esta informação neste link: using Statement (C# Reference)

Lá também tem um exemplo mostrando que é possível alcançar o mesmo efeito assim:

{
    Font font1 = new Font("Arial", 10.0f);

    try
    {
        byte charset = font1.GdiCharSet;
    }
    finally
    {
        if (font1 != null)
        ((IDisposable)font1).Dispose();
    }
}

Espero ter ajudado.