Почему мои автоматически реализованные свойства работают в ASP.NET 2.0? - PullRequest
3 голосов
/ 22 февраля 2012

Я использую автоматически реализованный синтаксис свойств в исходных файлах C # моего веб-приложения ASP.NET:

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

Целевая платформа проекта - .NET Framework 2.0 .Он компилируется и, похоже, работает правильно на сервере IIS с установленным только ASP.NET 2.0.Я использую Visual Studio 2010 для разработки и компиляции.

Я понял, что этот синтаксис поставляется с .NET 3.
Я пропустил настройку где-нибудь в VS?Могу ли я ожидать проблем с развертыванием веб-сайта на сервере IIS / ASP.NET 2.0?

Ответы [ 4 ]

6 голосов
/ 22 февраля 2012

Автоматически реализованные свойства были введены в .NET 3.0, но обратно совместимы с 2.0. Вот почему вы можете запустить свой код на 2.0 Framework. По сути, это просто синтаксический сахар, и компилятор фактически создает поле для вас за кулисами.

1 голос
/ 22 февраля 2012

Функции .NET 3.0 / 3.5 можно запускать только на сервере, на котором установлена ​​только .NET 2.0, если вы используете веб-приложение или предварительно скомпилированный сайт, а не «веб-сайт» Visual Studio, поскольку последний компилируется на сервере, где первые компилируются Visual Studio.

1 голос
/ 22 февраля 2012

Автоматически реализованные свойства работают в .NET 2.0, но вы не сможете скомпилировать код в Visual Studio 2005. Существует список функций 3.0 и их совместимость с 2.0

* 1004.*

1 голос
/ 22 февраля 2012

Как сказал @Jakub, он обратно совместим.Например, вы также можете использовать неявно объявленные переменные (var i = 1; //i is int), хотя они также были введены только в C # 3.0!

...