элементы импортируются даже без импорта пространства имен - PullRequest
3 голосов
/ 19 февраля 2010

Несмотря на то, что мы не импортируем «Системное» пространство имен, возможно получить доступ к различным элементам, включенным в «Системное» пространство имен. например, псевдонимы для различных типов (string, single, bool, decimal ...), класса объектов, а также функций класса объектов. Эти предметы видны через Intellisence. И когда мы импортируем пространство имен системы (используя System), мы получаем доступ ко всем его типам (Array, Enum и многим другим), а также к фактическим типам (System.String, System.Float и т. Д.).

Может кто-нибудь сказать, пожалуйста, почему это так?

Ответы [ 2 ]

1 голос
/ 19 февраля 2010

Псевдонимы типа c # {bool, byte, char, decimal, double, float, int, long, object, sbyte, short, string, uint, ulong, ushort} не являются частью пространства имен BCL System, они ' на самом деле является частью языка C #

Просто так получилось, что везде, где вы используете "строку" в качестве имени типа, компилятор C # при компиляции обрабатывает его как System.String. Я полагаю (я вполне могу ошибаться!), Что операторы using на самом деле не передаются в MSIL, который создает компилятор, поэтому каждая ссылка на тип "string" явно указывается как "System.String", а каждая ссылка на StringBuilder (например, в классе, который имеет «using System.Text;», расширен до «System.Text.StringBuilder».

1 голос
/ 19 февраля 2010

Системное пространство имен автоматически импортируется:

"CLR будет включать пространство имен при компиляции приложения ASP.NET. Некоторые пространства имен автоматически импортируются в страницы ASP.NET, поэтому вам не нужноиспользуйте Импорт, чтобы включить их в CLR. System, System.Collections, System.IO, System.Web, System.Web.UI, System.Web.UI.HTMLControls и System.Web.UI.WebControls - это пространства имен, которые всегда будутбыть принятым во внимание CLR. Пространство имен, такое как System.Data, которое вам может понадобиться, если вы работаете с базами данных, должно быть импортировано точно. "

http://www.redacron.com/tutorials/ASPNET/namespaces.php

Вот еще один интересующий вас вопрос.

...