Skip to main content

Posts

Showing posts with the label Evolução

C# 2.0 - Métodos Anónimos

Vamos voltar às minhas traduções dos artigos   sobre a evolução do C#. Todos estamos familiarizados por esta altura com o que é um delegate , correto? Os delegates  são uma parte muito importante do sistema de eventos no .NET. Basicamente, registamos um método (chamado  handler ) num  delegate  que irá ser chamado quando evento é invocado. Por outras palavras, um delegate  simplesmente aponta para um método. É um apontador que tem as vantagens de  type safety  e da abstração de alto nível. A grande vantagem é que um delegate  é um objecto que contém informação sobre como chamar um método, e traz-nos todas as vantagens da utilização de objectos, como por exemplo a capacidade de o passar por parâmetro. Vamos ver: Esta é uma forma de utilizar os  delegates dos eventos.  Uma qualquer classe expõe o evento e nós registamos o método no seu delegate . Quando o delegate  é invocado, todos os métodos registados serão...

C# 2.0 - Nullable Types

São 3 da manhã e não me apetece dormir. Estive a ajudar um amigo meu a trabalhar no código dele e estou apenas parcialmente cansado. Bem, porque não continuar com a série sobre a evolução do C#? Vamos a isso! Desta vez vamos falar de nullable types . Já todos utilizámos, mas no .NET 1.0 eles não existiam. Como é que representávamos um valor vazio? Uma string  pode conter null , supostamente é essa a representação do valor vazio. Como é que representamos um valor numérico vazio? Verificamos se é maior que 0? Bem, nalguns casos é exactamente isso que fazemos. Ou isso, ou criamos um valor constante que representa um "não valor". Mas para mim isto não é expressivo suficiente. Basicamente, um nullable type  é apenas um non-nullable type  envolvido na estrutura System.Nullable . Esta é uma estrutura genérica por isso faz uso dos G enerics  introduzidos no C# 2.0. A estrutura é bastante simples, contém apenas uma propriedade  HasValue  e Value . Ambas são...

C# 2.0 - Tipos Parciais

Para quem estiver interessado, encontrei uma lista muito interessante de features que foram introduzidas no C#  aqui . Esta é uma lista muito completa que contém todas as features que vou explicando uma a uma nesta série de posts. Já falámos sobre  Generics  e  Iterators . Agora vamos falar de tipos parciais . Um tipo parcial  é considerado como tal quando a sua definição está espalhada por várias partes em um ou mais ficheiros. Não tem que ser em múltiplos ficheiros, mas poderia. Este é um conceito muito simples que nos traz alguns benefícios. Vamos ver: Se um tipo for parcial, múltiplos programadores podem trabalhar em cada uma das partes. Isto permite-nos uma forma mais organizada de trabalhar, e pode acelerar a produção. Em Winforms, por exemplo, é gerada uma classe parcial  para cada Form para que o programador possa separar a lógica. Desta forma, uma parte contém informação acerca do design e a outra parte contém a lógica do  Form ....

A evolução do C# - O início

Hoje vamos falar sobre História. Não aquela História das Guerras Mundiais, mas a história da evolução do C# como uma linguagem. Tenho em mente analisar as partes principais de uma das linguagens de programação em massa mais utilizadas no mundo. A grande parte do que vou falar é fruto de muita pesquisa, em parte porque quando o C# e o .NET foram disponibilizados eu ainda não tinha escrito uma única linha de código, por isso podemos dizer que sou novato neste mundo. No entanto, estou a esforçar-me por mudar isso, e cada nova descoberta é feita com muito entusiasmo da minha parte, e eu considero-me extremamente pro-activo, o que poderá até irritar quem está à minha volta. Uma das razões pelas quais estou a escrever este post, e já agora todo este blog, é porque eu tenho gosto em aprender coisas novas e principalmente partilhá-las com outros. Chega de conversa, vamos ao que interessa! O início do .NET A plataforma .NET traz uma nova forma de programar as nossas aplicações. A Microsof...