为什么我的自动实现的属性在ASP.NET 2.0中工作?

时间:2012-02-22 11:34:19

标签: c# asp.net visual-studio properties automatic-properties

我在ASP.NET Web应用程序的C#源文件中使用自动实现的属性语法:

public int IdUser { get; set; }
...
this.IdUser = 1;

项目的目标框架 .NET Framework 2.0 。它编译并且似乎在仅安装了ASP.NET 2.0的IIS服务器上正常运行。我使用Visual Studio 2010进行开发和编译。

我理解这种语法随.NET 3一起提供 我错过了VS的某个地方吗?我是否可以在IIS / ASP.NET 2.0服务器上部署网站时遇到麻烦?

4 个答案:

答案 0 :(得分:6)

自动实现的属性在.NET 3.0中引入,但向后兼容2.0。这就是为什么你可以在2.0框架上运行你的代码。基本上,它只是一个语法糖,编译器实际上在幕后为你生成一个字段。

答案 1 :(得分:1)

正如@Jakub所说,它是向后兼容的。例如,您也可以使用隐式声明的变量(var i = 1; //i is int),尽管它们也仅在C#3.0中引入!

答案 2 :(得分:1)

自动实现的属性在.NET 2.0中有效,但您无法在Visual Studio 2005中编译代码。 有一个3.0功能列表及其与2.0的兼容性

http://csharpindepth.com/Articles/Chapter1/Versions.aspx

答案 3 :(得分:1)

如果您使用的是Web应用程序或预编译的站点而不是Visual Studio“网站”,则只能在仅具有.NET 2.0的服务器上运行.NET 3.0 / 3.5功能,因为后者已编译在服务器上,前者由Visual Studio编译。