Конечно, это не очень хорошая практика.Это делает упрощает некоторые примеры, такие как "Привет, мир" - может быть, дизайнеры C # собирались для code-golf; p
Но да, это странность.Я не знаю ни одной веской причины, по которой нам нужно , чтобы иметь возможность напрямую использовать глобальное пространство имен.Даже для методов расширения я бы предпочел добавить директиву using
, чтобы привести их в ...
Интересно - кажется, что в mscorlib.dll
нечетных 40, а в system.dll
* - нечетных 201012 *
var mscorlib = typeof(string).Assembly.GetTypes()
.Where(t => string.IsNullOrEmpty(t.Namespace)).ToList();
var system = typeof(Uri).Assembly.GetTypes()
.Where(t => string.IsNullOrEmpty(t.Namespace)).ToList();
(но все частные / сгенерированные компилятором)