Você está na página 1de 3

Membros estáticos

Com o C#, é possível construirmos classes, métodos e propriedades que são estáticas. Quando
um membro é estático, isso significa que não há necessidade de se criar uma instância da
classe (ou seja, um objeto) para se utilizar aquele membro. Isso ocorre porque não há
necessidade de se alocar espaços na memória para a utilização dos membros estáticos, ao
contrário de quando criamos objetos com o new.

Para definirmos membros como estáticos, nós precisamos utilizar a keyword static.

Vamos ver alguns exemplos agora para verificarmos como criar membros estáticos em nosso
código.

Podemos criar classes estáticas...

Podemos criar métodos estáticos...

E podemos criar até mesmo campos estáticos!

É importante notar alguns pontos relacionados aos membros estáticos:

 Classes estáticas são carregadas quando a aplicação é iniciada. Por isso, não é
necessário criar instâncias de classes estáticas para utilizá-las;

 Como uma classe estática não pode ser “construída” (nós não utilizamos a keyword
new para utilização de classes estáticas), não faz sentido ela conter outros membros
que não sejam estáticos em seu interior;

 Você pode ter campos e métodos estáticos dentro de uma classe que não é estática.
Por exemplo, a classe abaixo é válida:
Para utilizarmos nossa classe, com métodos estáticos e não-estáticos, podemos utilizar o
código abaixo:

 Mesmo que você utilize classes não-estáticas com membros estáticos e crie várias
instâncias dessa classe, os membros estáticos são exatamente os mesmos entre todas
as instâncias;

 Você não pode criar herança de classes marcadas como estáticas (veremos herança
nos capítulos à frente);

Pode não parecer, mas membros estáticos são extremamente úteis. Duas situações típicas
ilustram muito bem quando devemos utilizar membros estáticos:

 Declaração de constantes, que são “variáveis que não variam”. Por exemplo: a lei
brasileira prevê que, quando alguém completa 18 anos, passa a ser “maior de idade”.
Dessa maneira, podemos criar um campo estático em uma classe para fixarmos este
valor em nossa aplicação como sendo a idade que representa a maioridade. Ela ficaria
desta maneira:

Para classes que não guardam estado e somente têm métodos utilitários. Por exemplo, uma
classe que verifica se uma determinada pessoa é “maior de idade”. Ela somente faz isso: ela
não tem campos nem propriedades, nem guarda nenhum tipo de informação. Ela acaba sendo
uma classe para ajudar outras, uma classe utilitária. Essa classe é uma candidata a ser estática.
O código dela poderia ficar assim:
Para utilizá-la:

Você também pode gostar