C# – Para Iniciantes – Parte 6 – Syntactic Sugar

Olá pessoal, já ouviram falar de Syntactic Sugar ?

Syntactic Sugar, também usado como Syntax Sugar, é um termo utilizado para quando uma linguagem de programação oferece uma forma mais fácil de ser lida e escrita.

Usar syntactic sugar refere-se a escrever um código de forma alternativa ao modo tradicional, com a finalidade de escrever menos código e torná-lo mais expressivo.

O que acontece é que nem sempre conhecemos todos os modos de se escrever em uma linguagem e podemos nos deparar com um código “estranho”.

Vou abordar dois exemplos de Syntactic Sugar em C#.

Primeiro exemplo:

O que está acontecendo aqui?

    int? numero = null;
    numero = 12;

Colocar um “?” no final de um tipo significa dizer que ele é um “Nullable Type”.

Nullable Type são instâncias de System.Nullable<T> struct. Ou seja, um int por exemplo pode receber valores entre -2147483648 a 2147483647 mas nunca um “null”, um int? além de receber valores entre -2147483648 a 2147483647 também pode receber “null”.

Em algum determinado momento sua variável do tipo int poderia receber um dado nulo “null”, por exemplo, ao receber valores de uma tabela de um banco de dados onde a coluna estivesse vazia “null”.

Se você fizer isso terá um erro:

    int numero = null;
    numero = 12;

    //Cannot convert null to 'int' because it is a non-nullable value type

Usar “?” para descrever um “Nullable Type” é uma forma reduzida, pois originalmente é feito assim:

    System.Nullable<int> numero = null;
    numero = 12;

Legal, agora já aprendemos o que é um “Nullable Type” e como declarar um tipo desse de forma reduzida.

Segundo exemplo:

O que está acontecendo aqui?

    string NomePrincipal = null;
    string NomeAlternativo = "Eduardo";

    string Nome = NomePrincipal ?? NomeAlternativo;

Afinal o que são estes dois pontos de interrogação? (??)

O código acima é para testar se a variável NomePrincipal não é nula (null) e se caso for, então atribuir a variável NomeAlternativo para a variável Nome.

Este é mais um exemplo de syntactic sugar no C#, menos código escrito e mais simples de entender. O que está acontecendo no código acima poderia ser escrito assim:

    string NomePrincipal = null;
    string NomeAlternativo = "Eduardo";

    string Nome = NomePrincipal != null ? NomePrincipal : NomeAlternativo;

Agora deu para entender?
No exemplo acima utilizamos um operador ternário. O operador ternário já é uma forma de escrever menos código, porém não é syntactic sugar.

Note que o primeiro exemplo de código exibido não é um operador ternário, apenas foi escrito de uma forma “abreviada” (isto é syntactic sugar).

    string Nome = NomePrincipal ?? NomeAlternativo;

Note também que usar o “??” é valido apenas para testar se um valor é “null”, não pode ser aplicado para outros tipos de validações.

Veja como ficaria se estivéssemos escrevendo da forma mais básica:

    string NomePrincipal = null;
    string NomeAlternativo = "Eduardo";

    string Nome;

    if (NomePrincipal != null)
    {
        Nome = NomePrincipal;
    }
    else
    {
        Nome = NomeAlternativo;
    }

Muito mais código, maior o tempo para ler e compreender.

Vamos aumentar as possibilidades? Veja só:

    string NomePrincipal = null;
    string NomeAlternativo = null;
    string NomeQualquer = null;

    string Nome = NomePrincipal ?? NomeAlternativo ?? NomeQualquer ?? "Sem Nome";

    // Resultado: Nome = "Sem Nome"

Podemos usar quantos “??” quisermos em nosso código, experimente escrever isso da forma mais básica, seria chato né? 🙂

Usar os benefícios do syntactic sugar é legal, facilita nosso entendimento ao ler e agiliza na hora de escrever reduzindo o tempo de codificação.

Referências:

Se você gostou compartilhe esse artigo, se tiver dúvidas ou quiser contribuir com algo faça um comentário.

Até a próxima.

Visual Studio 2012 Product Guide

Olá pessoal,

Estarei menos assíduo nas postagens até setembro, pois estou preparando o conteúdo da palestra do Visual Studio Summit 2012.

Por falar nisso gostaria de ter um visão completa sobre o produto?

Estou disponibilizando o link para download do Visual Studio 2012 Product Guide, conteúdo oficial Microsoft, vale a pena a leitura.

Visual-Studio-2012-Product-Guide.pdf

Até mais!

Exame para Certificação Microsoft Grátis.

Olá pessoal, boas novas – Exame para Certificação Microsoft Grátis.

A Microsoft liberou alguns PromoCodes para a realização de exames de certificação, tratam-se dos Beta Exam Process, ou seja, os novo exames de certificação que em breve serão lançados.

A categoria é Visual Studio 2012, segue abaixo a lista dos exames:

Exame
PromoCode
Expiração
71-481 – Essentials of Developing Windows Metro style Apps using HTML5 and JavaScript
FYT481
20/Agosto
71-482 – Advanced Metro style App Development using HTML5 and JavaScript
GXZ482
17/Agosto
71-483 – Programming in C#
JOK483
21/Agosto
71-484 – Essentials of Developing Windows Metro style Apps using C#
FTT484
05/Setembro
71-485 – Advanced Metro style App Development using C#
FTT485
07/Setembro
71-486 – Developing ASP.NET 4.5 MVC Web Applications
WWW486
17/Agosto
71-487 – Developing Windows Azure and Web Services
WWW487
04/Setembro

Os Exames Beta são um pouco diferentes, pois o resultado não sai na hora como um exame de certificação tradicional, normalmente a Microsoft divulga seu resultado em no máximo 30 dias.

Se passar no exame, ou seja, atingir 700 pontos ou mais, não é necessário realizar novamente o exame tradicional a certificação é dada pelos Exames Beta também.

Mais informações sobre Exames Beta em:
http://www.microsoft.com/learning/pt/br/certification/exam-dev.aspx#tab2 

É uma ótima oportunidade de colocar os novos conhecimentos em dia, dá tempo de estudar e fazer as provas.

Para agendar sua prova vá até o site http://www.register.prometric.com/ e escolha o centro de teste mais próximo a você. No momento do pagamento não precisa preencher os dados do cartão de crédito, basta clicar no botão Voucher / PromoCode e informar o código da prova escolhida.

A prova tem que ser agendada antes da data de expiração e a quantidade de exames é limitada, então corra e agende já o seu 🙂

Conselho:

  • Não marque a prova apenas para testar seu conhecimento. Estude! Como os exames são limitados dê a oportunidade de quem estudou realizar a prova.

Se você quer saber em primeira mão quando estas provas são liberadas acesse regularmente o site http://borntolearn.mslearn.net/

Boa sorte pessoal e espero que obtenham as novas certificações.

Vamos ao Visual Studio Summit 2012 ?

Olá pessoal, Vamos ao Visual Studio Summit 2012 ?

Estou divulgando este evento qual terei muito prazer de ir como palestrante e espectador.

O evento será em São Paulo no dia 22 de Setembro na Sede da Microsoft Brasil.

A grade está recheada de assuntos interessantíssimos, vale muito a pena, as inscrições acabaram rapidamente mas ainda há uma fila de espera, então quem quiser ir ainda dá tempo de tentar uma vaga!
http://www.visualstudiosummit.com.br

Farei uma palestra de 30 minutos sobre a tecnologia LightSwitch, se você quiser saber mais sobre procure sobre os horários na grade:
http://www.visualstudiosummit.com.br/palestras

Aproveito aqui para pedir a todos que já fizeram sua inscrição e infelizmente não poderão comparecer que cancelem seu convite no site: https://msevents.microsoft.com/CUI/MyMSEvents.aspx

Ajude a Divulgar!

Visite o site e clique em curtir no botão facebook na página principal. Um simples clique que faz muita diferença para todos que estão trabalhando duramente na construção desse evento.

Você tem um blog?
Escreva um post sobre o evento.
Você tem twitter?
Escreva um post com a HashTag #VSSummit

Gostaria de agradecer ao organizador do evento Ramon Durães pela oportunidade de palestrar ao lado de profissionais que tanto admiro.

Nos vemos lá, até mais!

C# – Para Iniciantes – Parte 5 – Properties

Olá pessoal, Falaremos hoje sobre C# Properties.

Uma propriedade (Property) é um membro de uma classe que fornece um mecanismo flexível para ler, gravar ou calcular o valor de um dado em particular.
As propriedades permitem que uma classe exponha de uma maneira pública a obtenção e definição destes valores.

Por ex. Temos a classe Carro, uma propriedade de carro é sua cor, ou seja, Cor é um atributo (propriedade) de Carro.

Uma propriedade pode obter um valor de uma classe e também pode defini-lo, sendo assim temos propriedades Read/Write ou apenas Readonly. 
Um exemplo:


// Essa é sua variável interna (privada)
private string _cor;

// Essa é sua propriedade pública.
public string Cor
{
  get { return _cor; }
  set { _cor = value; }
}

Notaram que ao ler o valor (get) a propriedade retorna o valor da variável interna e ao gravar (set) a variável interna é alterada para um novo valor.


// Fazendo Get
string CorCarro = Carro.Cor;

// Fazendo Set
Carro.Cor = "Preto";

E se a propriedade for Readonly?


// Essa é sua variável interna (privada)
private string _cor;

// Essa é sua propriedade pública.
public string Cor
{
  get { return _cor; }
}

Viram? Internamente não implementa o recurso do Set, ou seja, apenas podemos ler o estado, sem alterá-lo.

Agora que já está entendido, mais novidade:
Desde o C# 3.0 (Já estamos no 5.0) foi incluído o recurso de Automatic Properties (Propriedades Automáticas), ou seja, não necessitamos mais declarar o Get nem o Set, aquela variável interna de controle também não (é gerenciado automático).

Então como fica?


// Essa é sua propriedade Read/Write.
public string Cor { get; set; }

// Essa é sua propriedade Readonly.
public string Cor { get; }

Menos código, mais agilidade 🙂

Tem mais uma novidade, através do Visual Studio (2008 ou superior) podemos escrever rapidamente muitas propriedades utilizando o atalho “prop”

É muito simples, Apenas digite prop e dê Tab duas vezes.
Abaixo um vídeo que produzi para ilustrar:

É isso ai pessoal, esse artigo abordou de forma simples sobre as properties, na abordagem sobre classes falaremos mais 🙂

No caso de dúvidas utilizem os comentários.