Métodos de extensão em C# explicados

Métodos de extensão em C# explicados
Os métodos de extensão são um recurso poderoso do C# que permite que os desenvolvedores estendam os tipos existentes com nova funcionalidade sem modificar seu código -fonte. Este artigo explorará os métodos de extensão C# e como eles podem ser usados ​​nesta linguagem de programação.

Quais são os métodos de extensão?

Os métodos de extensão são uma espécie de método estático que remove o incômodo de editar o código -fonte para adicionar novos métodos. Isso significa que os desenvolvedores podem adicionar nova funcionalidade a tipos como strings, números inteiros ou qualquer outra classe personalizada sem precisar criar uma nova classe ou modificar a classe original. Os métodos de extensão são definidos em classes estáticas e usam o "esse" Palavra -chave Para especificar o tipo que está sendo estendido, a sintaxe para criar um método de extensão é o seguinte:

Public Static ReturnType MethodName (este parâmetro estendentType)

// implementação

A palavra -chave pública indica que o método é acessível de qualquer lugar do código, estático indica que o método é um método estático, e o retorno é o tipo de dados que é retornado por esse método. MethodName é o nome do método de extensão e essa palavra -chave seguida pelo ExtendedType O parâmetro indica que este método estende a classe ExtendedType.

O parâmetro é o parâmetro passado para o método, e a implementação do método é escrita dentro dos aparelhos encaracolados . Essa sintaxe permite que os desenvolvedores criem novos métodos para os tipos existentes, tornando o código mais reutilizável e modular.

Como usar o método de extensão para estender a classe String

Suponha que você queira adicionar um novo método à classe String que capitalize a primeira letra da string, você pode fazer isso usando um método de extensão usando o código abaixo dado:

usando o sistema;
Stringensões de classe estática pública

Public Static String CapitalizeFirstletter (esta entrada da string)

if (string.IsNullorEmpty (entrada))

retornar entrada;

Retornar char.Toupper (entrada [0]) + entrada.Substring (1);


programa de classe

estático void main (string [] args)

String input = "Hello Linux";
resultado da string = entrada.Capitalizefirstletter ();
Console.WriteLine (resultado);

Criamos um novo aplicativo de console que inclui a classe Stringextensões e, em geral, criamos uma variável de sequência nomeada como entrada e atribuímos uma string que contém “Olá Linux”. Em seguida Capitalizefirstletter O método de extensão é chamado na sequência de entrada, que capitaliza a primeira letra da string. Por fim, imprimimos o resultado para o console usando a função 'WriteLine ()' para que você deva ver a saída “Olá Linux” Quando você executa este programa:

Como usar o método de extensão para estender a classe inteira

Suponha que você queira adicionar um novo método à classe inteira que determina se o número inteiro é par ou estranho. Você pode fazer isso usando um método de extensão, como mostrado abaixo:

usando o sistema;
Interegerexenões de classe estática pública

public estático bool iseven (esta entrada int)

entrada de retorno % 2 == 0;


programa de classe

estático void main (string [] args)

INT número = 10;
se (número.Iseven ())

Console.WriteLine ($ "número é uniforme.");

outro

Console.WriteLine ($ "número é estranho.");


O código cria um método de extensão, para o tipo de dados int e o Iseven função retorna true se o número inteiro de entrada for uniforme e falso caso contrário.

Em geral, criamos um número de variável inteira e atribuímos o valor 10 e depois chamamos o método de extensão ISeven na variável numérica, que retorna verdadeiro, já que 10 é uniforme. Por fim, imprimimos o resultado para o console usando a função 'WriteLine ()' para que você deva ver a saída “10 é par” Quando você executa este programa:

Como usar o método de extensão para estender a interface da lista

Digamos que você queira adicionar um novo método ao Ilist interface que determina se a lista está vazia ou não e para fazer seu método de extensão, como mostrado abaixo:

usando o sistema;
usando o sistema.Coleções.Genérico;
Extensões de Lista de Classe estática pública

public estático bool isEmpty (esta lista ilista)

Lista de retorno == NULL || lista.Contagem == 0;


programa de classe

estático void main (string [] args)

Números da lista = new List ();
if (números.Está vazia())

Console.WriteLine ("A lista está vazia.");

outro

Console.WriteLine ($ "A lista contém números.Contagem elementos.");


Neste exemplo, criamos um método de extensão IsEmpty para o ilista Tipo de dados, onde t é um parâmetro de tipo genérico. O Está vazia o método retorna true se a lista de entrada for nula ou não tiver elementos e false caso contrário. Em geral, criamos um novo Lista chamados números e depois chamados de Está vazia Método de extensão na lista de números, que retorna true, pois a lista está vazia. Inicialmente, imprimimos o resultado para o console usando a função 'WriteLine ()' para que você deva ver a saída "A lista está vazia" Quando você executa este programa:

Conclusão

Os métodos de extensão são um dos recursos mais úteis do C# que permite que os programadores estendam os tipos existentes com nova funcionalidade sem modificar seu código original. Os métodos de extensão são definidos em uma classe estática e usam o "esse" palavra -chave seguida pelo tipo que está sendo estendido para indicar que são métodos de extensão. Neste artigo, vimos três exemplos de métodos de extensão que estendem as classes de sequência, número inteiro e ilista.