예제 #1
0
파일: Escope.cs 프로젝트: wgtxdominski/SOpt
    static int x = 10;           //escopo desta classe tempo de vida da aplicação
    static void Main()           //só existe dentro desta classe
    {
        StringBuilder t;         //vive por toda função

        {                        //inicia um novo escopo
            var y = new Teste(); //variável e objeto têm escopo e tempo de vida deste bloco
            x = y.Metodo(3);     //este x nada tem a ver com o x da outra classe, nem poderia
            t = y.txt;           //o texto ainda viverá
        } //y morre aqui, seu objeto precisa viver mais porque tem uma referência para ele
        WriteLine(t);            //o texto 0123456789 será impresso, ainda vive
        //não é possível acessar o conteúdo de y mais, mesmo o objeto estando vivo
        //o escopo acabou,só a referência previamente existente ainda pode acessar o objeto
    } //aqui morre t e finalmente o objeto criado por new Teste()