Creé un proyecto de muestra, con extras de C # 6.0: propagación nula e inicialización de propiedades como ejemplo, establecí la versión de destino .NET 4.0 y ... funciona.
public class Cat
{
public int TailLength { get; set; } = 4;
public Cat Friend { get; set; }
public string Mew() { return "Mew!"; }
}
class Program
{
static void Main(string[] args)
{
var cat = new Cat {Friend = new Cat()};
Console.WriteLine(cat?.Friend.Mew());
Console.WriteLine(cat?.Friend?.Friend?.Mew() ?? "Null");
Console.WriteLine(cat?.Friend?.Friend?.TailLength ?? 0);
}
}
- Wikipedia dice que .NET framework para C # 6.0 es 4.6.
- Esta pregunta (y la prueba Visual Studio 2015 CTP) dice que la versión CLR es 4.0.30319.0.
- Esta página de MSDN dice que .NET 4, 4.5, 4.5.2 usa CLR 4. No hay ninguna información sobre .NET 4.6.
¿Significa que puedo usar las funciones de C # 6.0 para mi software que apunta a .NET 4.0? ¿Hay alguna limitación o inconveniente?