Ho creato un progetto di esempio, con goodies di C # 6.0 - propagazione nulla e inizializzazione delle proprietà come esempio, impostare la versione di destinazione .NET 4.0 e ... funziona.
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 afferma che .NET framework per C # 6.0 è 4.6.
- Questa domanda (e test CTP di Visual Studio 2015 ) indica che la versione CLR è 4.0.30319.0.
- Questa pagina MSDN afferma che .NET 4, 4.5, 4.5.2 utilizza CLR 4. Non ci sono informazioni su .NET 4.6.
Significa che posso usare le funzionalità di C # 6.0 per il mio software destinato a .NET 4.0? Ci sono limitazioni o svantaggi?