Stworzyłem przykładowy projekt z dodatkami C # 6.0 - propagacja zerowa i inicjalizacja właściwości jako przykład, ustaw docelową wersję .NET 4.0 i to ... działa.
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 twierdzi, że .NET Framework dla C # 6.0 to 4.6.
- To pytanie (i test CTP programu Visual Studio 2015 ) mówi, że wersja CLR to 4.0.30319.0.
- Ta strona MSDN mówi, że .NET 4, 4.5, 4.5.2 używa CLR 4. Nie ma żadnych informacji o .NET 4.6.
Czy to oznacza, że mogę używać funkcji C # 6.0 dla mojego oprogramowania, które jest ukierunkowane na .NET 4.0? Czy są jakieś ograniczenia lub wady?