.NET

3 jul, 2018

Novidades do C# 7.3: como habilitar, utilizando os operadores == e != com Tuplas

Publicidade

Este primeiro artigo dá início a uma série que publicarei sobre os recursos que integram o C# 7.3. As próximas seções demonstram como ativar o uso desta versão da linguagem C# em um projeto, bem como trazem novidades relacionadas a manipulação de tuplas neste release.

Habilitando o uso do C# 7.3 no Visual Studio 2017

O exemplo apresentado neste artigo foi implementado a partir do VisualStudio 2017 Update 15.7.1. É importante destacar que releases anteriores não contam com suporte para a versão 7.3 da linguagem C#.

Caso o uso do C# 7.3 não tenha sido previamente habilitado, um alerta aparecerá no Visual Studio 2017 ao se tentar empregar algum dos novos recursos:

Para evitar este tipo de problema, será necessário alterar as propriedades do projeto em questão. Na seção “Build“, acionar a opção “Advanced…“:

Aparecerá a janela “Advanced Build Settings“, com a opção “C# latest major version (default)” selecionada:

Em “Language version” selecionar “C# 7.3” ou” C# latest minor version (latest)“, a fim de ativar os recursos desta nova versão da linguagem:

Utilizando os operadores == e != com tuplas

Uma das principais novidades que integram o C# 7.0, as estruturas conhecidas como tuplas, também passaram por melhorias com o C# 7.1. Para saber mais a respeito acesse os artigos a seguir:

Contudo, ainda não havia até o C# 7.2 a possibilidade de efetuar comparações com estes tipos de construções empregando os operadores de igualdade (==) e desigualdade (!=). O C# 7.3 já conta agora com este suporte, o que dispensará os desenvolvedores da necessidade de analisar individualmente cada campo em duas tuplas a serem comparadas:

using System;

namespace ExemploTuplas
{
    class Program
    {
        static void Main(string[] args)
        {
            var tupla1 = (Valor1: 1, Valor2: 2);
            var tupla2 = (Valor1: 1, Valor2: 2);
            var tupla3 = (Valor1: 3, Valor2: 4);

            if (tupla1 == tupla2)
                Console.WriteLine("tupla1 == tupla2");

            if (tupla2 != tupla3)
                Console.WriteLine("tupla2 != tupla3");

            Console.ReadKey();
        }
    }
}

A próxima imagem traz o resultado da execução deste código:

Referências