Resumo : neste tutorial, você aprenderá sobre as classes estáticas C# e como usá-las para definir classes utilitárias.
Introdução às classes estáticas C#
Uma classe estática é uma classe que não pode ser instanciada. Normalmente, você usa uma classe estática para agrupar membros específicos de uma classe, não de uma instância da classe.
Um uso comum de uma classe estática é criar uma classe utilitária que contém um conjunto de métodos e valores como a biblioteca Math.
Uma classe estática possui as seguintes características:
- Uma declaração de classe estática precisa ter a
static
palavra-chave. - Uma classe estática possui apenas membros estáticos, incluindo campos, propriedades e métodos estáticos .
- Uma classe estática não pode ter nenhum construtor de instância , mas pode ter um construtor estático .
- Uma classe estática é implicitamente selada . Portanto, você não pode subclassificá -lo.
Para acessar membros de uma classe estática, você usa o nome da classe e o nome do membro.
Exemplo de classe estática C#
Vamos ver um exemplo de uso de uma classe estática para definir uma classe utilitária.
Primeiro, defina uma classe estática LengthConverter
:
static class LengthConverter
{
public static double FeetToMeters(double ft) => ft / 3.28084;
public static double MetersToFeet(double m) => m * 3.28084;
}
Linguagem de código: C# ( cs )
A LengthConverter
classe estática possui dois métodos estáticos que convertem pés em metros e vice-versa.
Segundo, use a LengthConverter
classe:
// Program.cs
double feet, meters;
// feet to meters
feet = 100;
meters = LengthConverter.FeetToMeters(feet);
Console.WriteLine($"{feet}ft = {meters:0.##}m");
// meters to feet
meters = 10;
feet = LengthConverter.MetersToFeet(meters);
Console.WriteLine($"{meters}m = {feet:0.##}ft");
Linguagem de código: C# ( cs )
Saída:
100ft = 30.48m
10m = 32.81ft
Linguagem de código: texto simples ( texto simples )
A partir do C# 6, você pode acessar membros de uma classe estática sem a classe se tiver uma using static
diretiva. Por exemplo:
// Program.cs
using static LengthConverter;
double feet, meters;
// feet to meters
feet = 100;
meters = FeetToMeters(feet);
Console.WriteLine($"{feet}ft = {meters:0.##}m");
// meters to feet
meters = 10;
feet = MetersToFeet(meters);
Console.WriteLine($"{meters}m = {feet:0.##}ft");
Linguagem de código: C# ( cs )
Resumo
- Uma classe estática não pode ser instanciada e subclassificada.
- Uma classe estática possui apenas membros estáticos.
- Use uma classe estática para definir uma classe de utilitário.