J'ai créé un exemple de projet, avec des goodies C # 6.0 - propagation nulle et initialisation des propriétés à titre d'exemple, définissez la version cible .NET 4.0 et cela ... fonctionne.
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 indique que le framework .NET pour C # 6.0 est 4.6.
- Cette question (et le test CTP de Visual Studio 2015 ) indique que la version CLR est 4.0.30319.0.
- Cette page MSDN indique que .NET 4, 4.5, 4.5.2 utilise CLR 4. Il n'y a aucune information sur .NET 4.6.
Cela signifie-t-il que je peux utiliser les fonctionnalités C # 6.0 pour mon logiciel qui cible .NET 4.0? Y a-t-il des limitations ou des inconvénients?