Pregunta

¿Cuáles son las características de lenguaje C # 3.0 que podemos usar en una aplicación que se enfoca en el marco .Net 2.0?

PS: conozco algunas como Lambda expresiones y var keyword

¿Fue útil?

Solución

Por favor vea aquí:

Usar la sintaxis de C # 3.0 (.Net 3.5) en una aplicación .Net 2.0

Para obtener un resumen completo de lo que puede y no puede hacer cuando se dirige a .NET 2.0 Framework y usa C # 3.0.

En resumen:

El tipo de trabajo de los métodos de extensión, sin embargo, requieren " System.Runtime.CompilerServices.ExtensionAttribute " para funcionar, y este tipo se encuentra dentro del System.Core DLL (que no es estrictamente parte del marco .NET 2.0).

La sintaxis de consulta

no se puede usar " fuera de la caja " por así decirlo, sin embargo, se puede usar si una DLL de terceros (como LINQBridge ) se utiliza. Esta DLL reimplementa efectivamente muchos de los " desaparecidos " los tipos que necesita para realizar LINQ cuando se dirige al marco .NET 2.0. También implementa el " ExtensionAttribute " El tipo necesario para que los métodos de Extensión funcionen, así que simplemente agregar / hacer referencia a la DLL LINQBridge de su proyecto habilitará LINQ, sintaxis de consulta / expresiones y métodos de extensión.

Otros consejos

Tengo un artículo sobre este tema .

En resumen:

Compatible:

  • Propiedades implementadas automáticamente, variables y matrices locales de tipo implícito, inicializadores de objetos y colecciones, tipos anónimos, métodos parciales, expresiones lambda convertidas en tipos de delegado.

Parcialmente soportado:

  • Métodos de extensión (requiere un atributo) y expresiones de consulta (requiere que algo como LINQBridge sea útil)

No es compatible:

  • Lambdas convertidas en árboles de expresión

De hecho, he escuchado que la conversión en árboles de expresión está disponible con la ayuda de la implementación de Mono de System.Core . Aún no lo he probado ... Sigo queriendo hacerlo (y luego actualizo la página).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top