Novidades do C# 6.0 – Parte 2 – Expression-bodied

16 jan

Fala Galera,

Dando continuidade a série das novidades do C# 6.0, venho falar sobre um novo recurso chamado Expression-Bodied. Esse recurso já existe um há bom tempo no F# e agora foi incorporado ao C#.

Através desse novo recurso podemos escrever métodos e propriedades de forma muito mais “clean”  e para demonstrar o uso deste recurso, vou comentar sobre uma nova funcionalidade chamada String Interpolation.

Não deixe de conferir o vídeo no canal Developers .NET explicando o passo a passo sobre Expression-Bodied com String Interpolation

String Interpolation

Acho que ninguém tem dúvidas que o método String.Format é um dos mais úteis e usados dentro da linguagem C#, correto?

Com o novo recurso chamado String Interpolation é possível fazer a mesma operação do String.Format de forma muito simples.

Veja o exemplo do antes e depois. (Note que estou usando o exemplo do primeiro post sobre as novidades do C# 6.0, veja aqui)

public class Endereco
    {
        public String Cep { get; set; }
        public String Logradouro { get; set; }
        public String Complemento { get; set; }
        public String Bairro { get; set; }
        public String Cidade { get; set; }
        public String Estado { get; set; }

        public override string ToString()
        {
            return String.Format("{0}, {1}, {2}, {3}, {4}, {5}", this.Logradouro, this.Complemento, this.Bairro, this.Cidade, this.Estado, this.Cep);
        }
    }

Agora podemos fazer de uma maneira muito mais simples:

public class Endereco
    {
        public String Cep { get; set; }
        public String Logradouro { get; set; }
        public String Complemento { get; set; }
        public String Bairro { get; set; }
        public String Cidade { get; set; }
        public String Estado { get; set; }

        public override string ToString()
        {
            return $"{this.Logradouro}, {this.Complemento}, {this.Bairro}, {this.Cidade}, {this.Estado}, {this.Cep}";
        }
    }

Veja outro exemplo utilizando String Interpolation para formatação de paramêtros

public class Usuario
    {
        public String Nome { get; }
        public String Email { get; }
        public DateTime DtNascimento { get; }
        public List<Endereco> Enderecos => new List<Endereco>();

        public Usuario(string date)
        {
            this.DtNascimento = ToDateTime(date);
             
        }

        public override string ToString()
        {
            return $"{this.Nome}, {this.DtNascimento:dd/MM/yyyy}";
        }

    }

Eu achei bem interessante essa nova funcionalidade não acham ?

Expression-bodied

No exemplo acima de String Interpolation, fizemos um “override” do método ToString() que tem somente uma linha de código retornando um valor formatado, isso é bem comum no nosso dia-dia e agora podemos simplificar a escrita desses métodos de forma rápida utilizando a nova funcionalidade Expression-Bodied.

Veja o exemplo abaixo:

public class Endereco
   {
       public String Cep { get; set; }
       public String Logradouro { get; set; }
       public String Complemento { get; set; }
       public String Bairro { get; set; }
       public String Cidade { get; set; }
       public String Estado { get; set; }

       public override string ToString() => $"{this.Logradouro}, {this.Complemento}, {this.Bairro}, {this.Cidade}, {this.Estado}, {this.Cep}";        
   }

Também podemos usar Expression-bodied em propriedades:

public class Usuario
    {
        public String Nome { get; }
        public String Email { get; }
        public DateTime DtNascimento { get; }
        public List<Endereco> Enderecos => new List<Endereco>(); 

        public Usuario(string date)
        {
            this.DtNascimento = ToDateTime(date);
             
        }
    }

Note que com essa nova sintaxe não precisamos escrever o get, ele já está implícito nessa nova forma de escrita.

E ai gostaram dessas novas funcionalidades? Não deixe de comentar.

Até o próximo post não qual irei falar sobre Null Propagation e sobre o NameOf. Não deixe de se inscrever no meu canal Developers .NET (clique aqui e inscreva-se)

Abs e até o próximo post.

2 Replies to “Novidades do C# 6.0 – Parte 2 – Expression-bodied

  1. Oi Rafael!

    Parabéns pela iniciativa! Achei bastante interessante sobre o assunto de Expression-bodied e string interpolation. Estou ansioso pelo os próximos que vão vir, abraço!

    • Olá Thiago,

      Bom que tenha gostado, eu gostei muito dessas novas funcionalidades, principalmente o expression-bodied, acho que vai facilitar muito o nosso trabalho.

      Aproveite e se inscreva no meu canal do youtube Developers.Net e espalhe para seus amigos o meu blog

      =]

      Abs.,

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *