Compartilhar via


Using Static - C# 6.0

 O objetivo deste artigo é apresentar o recurso Using Static, uma das novas funcionalidades que integram a versão 6.0 da linguagem C#.

** Este post foi elaborado com base em um material publicado através do grupo de usuários .NET Coders, uma das principais comunidades de desenvolvimento no mundo.
*

Introdução

O uso de métodos estáticos constitui uma prática relativamente comum, sobretudo em cenários que envolvam a conversão de valores e cálculos aritméticos. Quando uma situação como esta acontecer, não será difícil que uma classe seja referenciada inúmeras vezes ao longo de um método, construtor ou tipo que dependa da mesma. Na próxima listagem está um exemplo disto, no qual foram utilizados os métodos Sqrt (raiz quadrada) e Power (potenciação) da classe Math.

using System;
 
namespace TesteUsingStatic
{
    class Program
    {
        static void  Main(string[] args)
        {
            int numero = 4;
 
            Console.WriteLine("Número: " + numero);
            Console.WriteLine("Raiz quadrada = " + Math.Sqrt(numero));
            Console.WriteLine("4 ^ 5 = " + Math.Pow(numero, 5));
            Console.WriteLine("4 ^ 10 = " + Math.Pow(numero, 10));
 
            Console.ReadKey();
        }
    }
}

O recurso Using Static

A fim de possibilitar a obtenção de um código mais enxuto, a versão 6.0 da linguagem C# disponibilizou um recurso conhecido como Using Static. A ideia com este novo tipo de construção é simplificar a invocação de métodos estáticos, dispensando o desenvolvedor da necessidade de indicar a classe à qual a operação em questão pertence. O uso deste mecanismo requer a inclusão de uma referência similar à de um namespace num arquivo .cs, empregando para isto a palavra-chave using acompanhada do nome de tipo tipo a ser omitido (este último deverá estar indicado em sua forma completa, ou seja, precedido por seu namespace correspondente).

Supondo que este recurso venha a ser utilizado com a classe Math (retomando o exemplo da seção anterior), é possível observar que o próprio IntelliSense no Visual Studio 2015 já incluirá os métodos estáticos deste tipo na relação de opções disponíveis:

Já a próxima listagem apresenta o exemplo anterior refatorado. Após a inclusão de uma nova instrução using referenciando o tipo Math, o nome desta classe foi retirado das instruções que faziam uso dos métodos Sqrt e Power.

using System;
using static  System.Math;
 
namespace TesteUsingStatic
{
    class Program
    {
        static void  Main(string[] args)
        {
            int numero = 4;
 
            Console.WriteLine("Número: " + numero);
            Console.WriteLine("Raiz quadrada = " + Sqrt(numero));
            Console.WriteLine("4 ^ 5 = " + Pow(numero, 5));
            Console.WriteLine("4 ^ 10 = " + Pow(numero, 10));
 
            Console.ReadKey();
        }
    }
}

Na imagem a seguir está o resultado da execução da listagem demonstrando o uso do recurso Using Static:

C# 6.0 - Novos Recursos (Exemplos)
https://gallery.technet.microsoft.com/C-60-Novos-Recursos-d22a7d9d

New Language Features in C# 6
https://github.com/dotnet/roslyn/wiki/New-Language-Features-in-C%23-6

.NET Coders – Blog
http://netcoders.com.br/blog/

.NET Coders – Facebook
https://www.facebook.com/groups/netcoders/

.NET Coders – Meetup
http://www.meetup.com/pt/NetCoders/