Stworzyłem przykładowy projekt, z dodatkami C# 6.0 - propagacja pustej i inicjowanie właściwości jako przykładu, ustaw docelową wersję .NET 4.0 i ... działa.Czy C# 6.0 działa dla .NET 4.0?
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 says .NET framework dla C# 6.0 to 4.6.
- This question (i Visual Studio 2015 Test CTP) mówi, że wersja CLR to 4.0.30319.0.
- 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 w moim oprogramowaniu, które kieruje do .NET 4.0? Czy są jakieś ograniczenia lub wady?
. Wersje Netto 2.0 - 3.5 używają CLR v2.0. Nowsze wersje używają CLR v4.0. – i3arnon
miej na uwadze, że, optymalizuj mądrość: dodajesz osobny sprawdzian typu "null" dla każdego kota, tak jak ten – Terence
Mój Boże. Opracowuję kierowanie WCF w wersji 4.6, aby "przypomnieć", że serwer produkcyjny nie zostanie zaktualizowany do 2018 roku. Myślałem, że praca za miesiąc wymagać będzie kilku dni refaktoryzacji. Ukończony w pięć minut. Dziękuję, Microsoft! : D –