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

27/01/2009

0

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,

[b:226b8eb03e] Console.WriteLine(Class1.total++);

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

Class1 cl2 = new Class1();
Console.WriteLine(Class1.total);[/b:226b8eb03e]

Não consegui entender o sentido das linhas:

[b:226b8eb03e]Class1 cl1 = new Class1(); e Class1 cl2 = new Class1();[/b:226b8eb03e]

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 [b:226b8eb03e]Class1 cl1 = new Class1();[/b:226b8eb03e] e [b:226b8eb03e]Class1 cl2 = new Class1();[/b:226b8eb03e].

Poderiam me explicar o sentido delas neste sistema?


Nosliwde

Nosliwde

Responder

Posts

30/01/2009

Sanses

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


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar