Tôi đã tạo một dự án mẫu, với các tính năng C # 6.0 - tuyên truyền null và khởi tạo thuộc tính làm ví dụ, đặt phiên bản đích .NET 4.0 và nó ... hoạt động.
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 cho biết .NET framework cho C # 6.0 là 4.6.
- Câu hỏi này (và bài kiểm tra CTP của Visual Studio 2015 ) cho biết phiên bản CLR là 4.0.30319.0.
- Trang MSDN này nói rằng .NET 4, 4.5, 4.5.2 sử dụng CLR 4. Không có bất kỳ thông tin nào về .NET 4.6.
Điều đó có nghĩa là tôi có thể sử dụng các tính năng C # 6.0 cho phần mềm của mình nhắm mục tiêu .NET 4.0 không? Có bất kỳ hạn chế hoặc nhược điểm?