Em C#, a palavra-chave static
é usada para declarar membros (métodos, propriedades, campos, eventos) que pertencem à classe em si, em vez de pertencerem a instâncias individuais da classe. Aqui estão os principais usos e efeitos do static
:
- Membros Estáticos: Quando você declara um membro como
static
, ele se torna compartilhado por todas as instâncias da classe. Isso significa que ele pode ser acessado sem a necessidade de criar uma instância da classe. Por exemplo:
public class Exemplo
{
public static int Numero = 10;
public static void MetodoEstatico()
{
Console.WriteLine("Método estático chamado");
}
}
Você pode acessar o membro Numero
e o método MetodoEstatico
diretamente usando o nome da classe:
int num = Exemplo.Numero; // Acesso ao campo estático
Exemplo.MetodoEstatico(); // Chamada do método estático
- Classes Estáticas: Você também pode declarar uma classe inteira como
static
. Isso significa que a classe não pode ser instanciada e todos os membros da classe devem ser estáticos. Classes estáticas são úteis quando você tem uma coleção de métodos e campos relacionados que não dependem de instâncias específicas. Por exemplo:
public static class Utilitarios
{
public static void Metodo1()
{
// Implementação do método 1
}
public static void Metodo2()
{
// Implementação do método 2
}
}
Nesse caso, você não pode criar uma instância da classe Utilitarios
, mas pode chamar seus métodos diretamente:
Utilitarios.Metodo1();
Utilitarios.Metodo2();
- Construtores Estáticos: Você pode ter um construtor estático em uma classe, que é chamado automaticamente uma vez, quando a classe é carregada pela primeira vez. Construtores estáticos são usados para inicializar membros estáticos da classe. Por exemplo:
public class Exemplo
{
public static int Numero { get; set; }
static Exemplo()
{
Numero = 100;
Console.WriteLine("Construtor estático chamado");
}
}
No exemplo acima, o construtor estático inicializa o campo estático Numero
e imprime uma mensagem. Este construtor será chamado automaticamente quando a classe Exemplo
for carregada pela primeira vez.
Em resumo, static
é usado para definir membros que pertencem à classe em vez de pertencerem a instâncias individuais da classe, permitindo acesso direto sem a necessidade de criar instâncias da classe.