我创建了一个示例项目,使用C#6.0好东西 - 以null传播和属性初始化为例,设置目标版本.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);
}
}
Run Code Online (Sandbox Code Playgroud)
这是否意味着我可以将C#6.0功能用于我的面向.NET 4.0的软件?有任何限制或缺点吗?
我在ASP.NET Web应用程序的C#源文件中使用自动实现的属性语法:
public int IdUser { get; set; }
...
this.IdUser = 1;
Run Code Online (Sandbox Code Playgroud)
该项目的Target框架是.NET Framework 2.0.它编译并且似乎在仅安装了ASP.NET 2.0的IIS服务器上正常运行.我使用Visual Studio 2010进行开发和编译.
我理解这个语法是在.NET 3中提供的
.我错过了VS中的某个设置吗?我可以预期在IIS/ASP.NET 2.0服务器上部署网站时出现问题吗?