c# .net .net-3.5

C#4.0 y.Net 3.5



.net-3.5 (1)

Así que finalmente tenemos VS2010 en algunas estaciones de desarrollador en el trabajo y podemos usar las funciones de C # 4.0. Aunque la mayor parte de lo que desarrollamos todavía tendrá que apuntar a .Net 3.5 por el momento.

Cuando comienzo un nuevo proyecto y establezco el destino en .Net 3.5, todavía me permite usar C # 4.0 como dinámico. Por lo tanto, ¿puede usar las funciones de C # 4.0 mientras se dirige a .net 3.5 y estas funciones funcionarán en entornos donde .Net 4.0 no está disponible?

Gracias.


dynamic código dynamic no se compilará si apuntas al marco .NET 3.5.

Para ser más claros, el compilador le permitirá definir y asignar una variable dynamic , como:

dynamic x = 3;

Esa única línea de código se compilará, porque la dynamic simplemente compila para object en lo que respecta a los tipos. Pero si luego intentas hacer algo con esa variable, como en:

Console.WriteLine(x);

... entonces el compilador tendría que generar código para descubrir / forzar el tipo real, lo que no puede hacer; Obtendrás los siguientes errores de compilación:

  1. El tipo predefinido ''Microsoft.CSharp.RuntimeBinder.Binder'' no está definido ni importado
  2. No se pueden encontrar uno o más tipos necesarios para compilar una expresión dinámica. ¿Le faltan referencias a Microsoft.CSharp.dll y System.Core.dll?

El compilador C # 4 se basa en el DLR y específicamente en el ensamblado Microsoft.CSharp para todo lo relacionado con la dynamic . Estos no están disponibles en .NET 3.5. Por lo tanto, la respuesta es no, no puede usar la dynamic cuando se dirige a la versión 3.5 de Framework.