Pergunta

O que é o C # 3.0 recursos de linguagem que podemos usar em um aplicativo que alvos .NET Framework 2.0?

PS: Eu sei poucos como expressões lambda e var palavra-chave

Foi útil?

Solução

Por favor, veja aqui:

Utilizando C # 3.0 (Net 3.5) sintaxe em uma aplicação Net 2.0

Para uma corrida completa para baixo do que você pode e não pode fazer quando o direcionamento do .NET Framework 2.0 e usando C # 3.0.

Em resumo:

Os métodos de extensão espécie de trabalho, no entanto, eles exigem "System.Runtime.CompilerServices.ExtensionAttribute", a fim de trabalho, e este tipo é encontrado dentro do System.Core DLL (que não é estritamente parte do .NET 2.0 quadro).

Sintaxe de consulta não pode ser usado "fora da caixa" para-falar, no entanto, ele pode ser usado se um terceiro DLL partido (como LINQBridge ) é usado. Esta DLL re-implementa muitos dos "desaparecidos" tipos que você precisa executar LINQ ao alvejar o .NET Framework 2.0 com eficácia. Ele também implementa o tipo "ExtensionAttribute" necessário para métodos de extensão para trabalhar, então simplesmente adicionando / referenciando o LINQBridge DLL do seu projeto permitirá LINQ, Sintaxe de consulta / Expressões e Métodos de extensão!

Outras dicas

Eu tenho um artigo neste tema.

Em resumo:

suportados:

  • Propriedades implementadas automaticamente, variáveis ??digitadas implicitamente locais e arrays, objetos e coleta de initializers, tipos anônimos, métodos parciais, expressões lambda convertidos em tipos de delegados.

parcialmente suportados:

  • Os métodos de extensão (requer um atributo) e expressões de consulta (requer algo como LINQBridge para ser útil)

Não suportado:

  • Lambdas convertido em árvores de expressão

Na verdade, eu ouvi dizer que a conversão em árvores de expressão é disponíveis com a ajuda de implementação de System.Core de Mono. Eu não tentei ainda embora ... I manter significado para fazê-lo (e, em seguida, atualizar a página).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top