Я створив зразок проекту, з прикладом C # 6.0 - нульове розповсюдження та ініціалізація властивостей як приклад, встановив цільову версію .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);
}
}
- Вікіпедія каже, що .NET рамка для C # 6.0 становить 4,6.
- Це питання (і тест CTP Visual Studio 2015 ) говорить, що версія CLR становить 4.0.30319.0.
- На цій сторінці MSDN зазначено, що .NET 4, 4.5, 4.5.2 використовує CLR 4. Немає інформації про .NET 4.6.
Чи означає це, що я можу використовувати функції C # 6.0 для мого програмного забезпечення, яке орієнтується на .NET 4.0? Чи є якісь обмеження чи недоліки?