Нет ссылки на использование в сгенерированном коде asp.net - PullRequest
3 голосов
/ 08 сентября 2011

Когда я посмотрел на сгенерированный код страницы aspx, меня поразила одна вещь. Каждая ссылка на класс печатается каждый раз вместо применения метода «using» в верхней части файла кода.
Есть ли причина для этого?
Если нет разницы в двух методах, то почему бы не использовать «использование» для простоты?

System.Data.DataSet theSet = new DataSet();

против

using System.Data;  
DataSet theSet = new DataSet();

Ответы [ 3 ]

6 голосов
/ 08 сентября 2011

Поскольку для сгенерированного кода простота чтения не является приоритетом.

Простота написания , однако, является проблемой: если типы всегда указываются с их полностью определенным именем, вероятность конфликта имен уменьшается. Представьте, что у вас есть две библиотеки, которые предоставляют элементы управления TextBox, и вы добавляете их в веб-форму.

// no problem
System.Web.UI.WebControls.TextBox myDefaultTextBox = new System.Web.UI.WebControls.TextBox();
CustomLibrary.TextBox theOtherTextBox = new CustomLibrary.TextBox();

по сравнению с

using System.Web.UI.WebControls;  
using CustomLibrary;  

// won't compile, would need special treatment by the code generator
TextBox myDefaultTextBox = new TextBox();
TextBox theOtherTextBox = new TextBox();
1 голос
/ 08 сентября 2011

Вероятно, чтобы помочь избежать неясностей типа.

Обновление: более элегантно описано Хайнци.

0 голосов
/ 08 сентября 2011

Нет смысла полностью квалифицировать имя типа таким образом, если только для ясности не существует какой-либо стандарт кодирования.

...