Carlos Brando

Nome do Jogo

C# 3.0 - Se você gosta do Rails, deve ler este post.

mono-logo-thumb.png

Nestes últimos dias temos falado muito de C# e Ruby aqui no blog. Alguns deram suas opiniões e mostraram paixão tanto pelo Ruby quanto pelo C#. Eu volto mais uma vez a frisar que você não deve ser fanático, deve ter a mente aberta para tudo. É isto que torna você um excelente profissional.

Pesquisando o que tem de novo no C# 3.0 me deparei com um recurso muito legal: Extensões.

Nós que programamos em Ruby estamos acostumados a fazer algo assim:

[source:ruby] 10.days.ago 100.megabytes + 50.kbytes [/source]

Mas em C# isto simplesmente não é possível, ou melhor não era… Na nova versão 3.0 você pode criar extensões para tipos primários:

[source:csharp] public static class Extensions { public static int Megabytes(this int value) { return value * 1024 * 1024; } public static int Kilobytes(this int value) { return value * 1024; } public static int Days(this int value) { return value * 24 * 60 * 60 * 1000; } public static DateTime Ago(this int value) { return DateTime.Now.AddMilliseconds(-value); } } [/source]

E usar da seguinte maneira:

[source:csharp] DateTime x = 10.Days().Ago(); int bytes = 100.Megabytes() + 50.Kilobytes(); [/source]

E aí, o que achou? Legal né?

Para finalizar o assunto, não aja como um fanático religioso com respeito a sua linguagem de programação favorita. Seja sempre aberto a novas descobertas. C# é uma linguagem e tanto, e com recursos como este que acabamos de ver, mais o lançamento do DLR que deve acontecer em breve, podemos portar todas as funcionalidades do Rails para ele, incluindo as mágicas do ActiveRecord.

Minha opinião? Estude Ruby on Rails, estude C# e estude Java.

Comments