Array
(
)

Análise de Código - Atributo Estático e Método Estático

Nosliwde
   - 27 jan 2009

Meus colegas, como já puderam ver aí no Fórum, estou iniciando em C# e tenho dúvidas inerentes ao assunto.

Estou estudando em um boa apostila, mas que não detalha muito sobre determinados pontos de seus códigos.

No código abaixo, foi utilizada uma serie de instruções no que diz respeito a uma das classe do sistema.

Eis o código. Abaixo detalharei minha dúvida:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace testStaticInst
{
class Class1
{
//atributo estático
public static int total = 0;

//metodo estatico
public static void inc()
{
total++;
}
}

class App
{
static public void Main()
{
Console.WriteLine(Class1.total++);

Class1 cl1 = new Class1();
Console.WriteLine(Class1.total++);

Class1 cl2 = new Class1();
Console.WriteLine(Class1.total);

Console.ReadLine();

}
}
}

Minha dúvidas são:

Neste trecho do código,

Console.WriteLine(Class1.total++);

Class1 cl1 = new Class1();
Console.WriteLine(Class1.total++);

Class1 cl2 = new Class1();
Console.WriteLine(Class1.total);

Não consegui entender o sentido das linhas:

Class1 cl1 = new Class1(); e Class1 cl2 = new Class1();

sendo que se eu simplesmente utilizar,

Console.WriteLine(Class1.total++); e Console.WriteLine(Class1.total);

sem emncionar estas linhas,os resultados são mostrados normalmente no console.

Então pergunto eu:

Pra que servem estas linhas Class1 cl1 = new Class1(); e Class1 cl2 = new Class1();.

Poderiam me explicar o sentido delas neste sistema?

Sanses
   - 30 jan 2009

Vamos lá

Quando vc usa new está criando uma instancia nova da classe, sendo assim este exemplo tenta mostrar que embora vc crie varias classes todas elas estão incrementando o mesmo valor:

0
1
2 que aparece no console. Isoo por que é uma variavel statica.

se a variavel fosse declarada assim:
public int total = 0;

cada instancia da classe seria criada com zero, e todas incrementariam 1, tento o mesmo resultado.

0
1
1 no console

Entendeu ?

[]´s
Sanses