我创建了一个示例项目,以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);
}
}
- 维基百科说,C# 6.0 的.NET框架版本为4.6。
- 这个问题(以及Visual Studio 2015 CTP测试)表示CLR版本是4.0.30319.0。
- 这个MSDN页面说.NET 4、4.5和4.5.2使用CLR 4。没有关于.NET 4.6的信息。
这是否意味着我可以在针对.NET 4.0的软件中使用C# 6.0功能?是否有任何限制或缺点?