Início > pc > Visual Studio 2008 e .Net Framework 3.5 – O que há de novo?

Visual Studio 2008 e .Net Framework 3.5 – O que há de novo?

Até acho meio antiguinho isso (até por que já estamos em 2009, dã). Mas um conhecido me perguntou por que eu uso o 2008 pra criar aplicativos pro Framework 2.0; Vamos lá

– Do 3.0 foram agregados WPF, WCF, WWF e CardSpace (não vou me ater);
– Do 3.5 veio o LINQ, o ASP.Net 3.5, o CLR Add-in, o próprio Visual Studio 9 (2008, o Visual Studio 8 é o 2005, facinho de confundir) e o novo Device Emulator 3;

A parte legal

– Propriedades autoimplementadas, agora é possível fazer:

class Pessoa {
   public String Nome { get; set; }
   public String Sobrenome { get; set; }
}

– Inicialização do Objeto na criação;

Pessoa Autor = new Pessoa {
   Nome = @"Eduardo";
   Sobrenome = @"Farias";
}

– Método de Extensão (Extension Method). Eu acho que bagunça o código isso aqui, é uma forma de tu criar um método pra um tipo base, olha que loucura, um exemplo:

public static class EMailValidate {
public static Boolean
isValidEmail(this string StringParam) {
Regex regex = new
Regex(@"[\w-\.]+@([\w-]+\.)+[\w-]{2,4}S"); return regex.isMatch(StringParam); }
}

A classe tem que ser "static” e o “this” informa pro compilador o tipo: a utilização fica assim:

private void btnValidate(object sender, EventArgs e) {
   String str = txtEmail.text; //Pros desavisados que 
//não sabem que .text
//já é string
Messagebox.Show(str.isValidEmail); }

Pelo menos dessa forma podemos criar um “método In” já que operador ainda não nos deram possibilidade de criar.

public static class InExtension {

   public static bool In(this object objectParam, 
             IEnumerable<object> CollectionParam) {

      foreach (object obj in CollectionParam) {
         if (o.Equals(objectParam)) return true;
      }
      return false;
   }
}

– Tipo por Inferência (Type Inference); Declara uma variável com valor e o compilador descobre o tipo. Só vale pra variáveis locais (até por que se fosse um parâmetro e estourasse a capacidade do Int-16 ele não teria como converter pra Int-32 e tal

var i = 1;

– Tipos Anônimos. Junta o tipo por inferência com a inicialização na criação

var EnderecoCompleto = new {
   Rua = "Av. das Flores";
   Cidade = "Porto Alegre";
   Estado = "RS";
}

– Expressões Lambda. Eu sempre preciso consultar a sintaxe na hora de escrever, mas é quando tu quer passar algo mais que um valor como parâmetro, por exemplo, filtro pra um dataset, onde tu tem que dizer o campo, o operador e o(s) valor()

Func<string, bool> filter = x => x.Length > 50

Anúncios
  1. F.D.Castel
    12/janeiro/2009 às 10:43

    E isso aí são “só” as novidades do compilador C# 3.0. Para ver o que mudou no framework:

    http://msdn.microsoft.com/en-us/library/bb332048.aspx

    Ou seja, deviam é ter chamado de v4.0 mesmo 😉

  1. 22/janeiro/2009 às 5:10

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: