Criei um projeto de amostra, com brindes do C # 6.0 - propagação nula e inicialização de propriedades como exemplo, defina a versão de destino .NET 4.0 e ... funciona.
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);
}
}
- A Wikipedia diz que o .NET framework para C # 6.0 é 4.6.
- Esta pergunta (e o teste CTP do Visual Studio 2015 ) diz que a versão do CLR é 4.0.30319.0.
- Esta página do MSDN informa que o .NET 4, 4.5, 4.5.2 usa o CLR 4. Não há informações sobre o .NET 4.6.
Isso significa que posso usar os recursos do C # 6.0 para o meu software direcionado ao .NET 4.0? Existem limitações ou inconvenientes?