BT

A sua opinião é importante! Por favor preencha a pesquisa do InfoQ!

Planos futuros para o C#

| por Jonathan Allen Seguir 203 Seguidores , traduzido por Elias Lima de Souza Seguir 0 Seguidores em 24 dez 2013. Tempo estimado de leitura: 2 minutos |

Para melhorar a experiência das pessoas que acessam o InfoQ Brasil, nós criamos uma série de funcionalidades que te permitem ficar pode dentro das últimas tendências e das novidades de seu interesse, sem que você seja incomodado por coisas irrelevantes. Receba e-mails periódicos e notificações sobre seus tópicos favoritos!

No NDC Londres, Mads Torgersen, membro do time de design do C#, propôs mudanças para a linguagem C#. Deve ser ressaltado que são apenas propostas e que não existem garantias de que irão aparecer em alguma versão específica da linguagem. Damien Guard postou um resumo e uma breve análise dessas propostas e aqui vão alguns dos principais tópicos.

Propriedades somente leitura

Propriedades somente leitura vão permitir que desenvolvedores declarem propriedades e os valores que elas armazenam em uma única linha.


public int X { get; } = x;

 

Uso de tipos estáticos

Visual Basic e Java já permitem que desenvolvedores importem módulos (classes estáticas em C#) no namespace. Isso permite remover códigos repetitivos como "Math." na frente de funções comumente utilizadas.

Construtores primários

Colocando parâmetros após o nome da classe, os desenvolvedores não precisarão explicitamente criar construtores. Isso elimina a necessidade de copiar os valores dos parâmetros dos construtores nos campos privados.


public class Point(int x, int y) {

private int x, y;

}

Expressões de propriedade e método

Expressões de propriedade eliminariam alguns clichês necessários para propriedades somente leitura.


public double Distance => Math.Sqrt((X * X) + (Y * Y));

Propriedades de método fariam o mesmo, exceto que obviamente aceitariam parâmetros.

Perceba que propriedades parametrizadas ainda não estão sendo consideradas. Para um futuro próximo, isso continua sendo uma funcionalidade apenas do VB.

Parâmetros de função

Nos dias de hoje, a maioria dos desenvolvedores não utilizam arrays, exceto quando precisam para a palavra-chave params. Assim, uma proposta é que a interface IEnumerable<T> também suporte params. Se isso for feito, outras linguagens como Visual Basic também precisariam dar suporte à essa funcionalidade.

Outra proposta é permitir que variáveis locais sejam declaradas utilizando a palavra chave out. Por exemplo,


int.TryParse("123", out int x);

Propagação de null

Quando estão trabalhando com dados confusos, os desenvolvedores freqüentemente precisam escrever uma série de validações de nulo antes de ler uma propriedade ou invocar um método. A sintaxe ?. eliminaria a necessidade de validação, invocando o método se o valor que a procede não for nulo.


var bestValue = points?.FirstOrDefault()?.X;

Nesse caso, se points for nulo, ou points.FirstOrDefault() retornar nulo, então .X é ignorado e a expressão retorna nulo. Isso pode ser encadeado com ?? para fornecer um valor padrão alternativo.


var bestValue = points?.FirstOrDefault()?.X ?? -1;

Essa semântica é encontrada em linguagens de "passagem de mensagens", como Objective-C e Smalltalk. É comumente citada como sendo problemática porque o que poderia ser uma exceção de referência nula, é silenciosamente ignorada.

Por fim, essas propostas de novas funcionalidades para o C# ajudariam a diminuir o ruído e a repetição de código, mas ainda precisam ser melhor estudadas e detalhadas para uma análise mais concreta dos prós e contras de cada abordagem.

Avalie esse artigo

Relevância
Estilo/Redação

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião

Faça seu login para melhorar sua experiência com o InfoQ e ter acesso a funcionalidades exclusivas


Esqueci minha senha

Follow

Siga seus tópicos e editores favoritos

Acompanhe e seja notificados sobre as mais importantes novidades do mundo do desenvolvimento de software.

Like

Mais interação, mais personalização

Crie seu próprio feed de novidades escolhendo os tópicos e pessoas que você gostaria de acompanhar.

Notifications

Fique por dentro das novidades!

Configure as notificações e acompanhe as novidades relacionada a tópicos, conteúdos e pessoas de seu interesse

BT