# Пространства имён

```csharp
namespace NameSpaceName {
    // ...
}
```

Всё, что внутри скобок, находится в пространстве имён NameSpaceName и доступ к нему должен производится соответствующим образом. Код за пределами этого пространства имён должен указывать полное имя (включая имя пространства имён) для всего что находится внутри этого пространства имён, или же, с помощью директивы using, импортировать это пространство имён.

```csharp
using NameSpaceName;

// ...
```

Например, если пространство Gtk импортировано директивой `using Gtk;` вы можете написать просто `Window`, вместо `Gtk.Window`. Полностью квалифицированное имя будет необходимо лишь в случае неопределённости, например между `GLib.Object` и `Gtk.Object`.

Пространство имён GLib импортируется по умолчанию. Представьте невидимую строку `using GLib;` в начале каждого файла с кодом на Vala.

Всё, что вы не положите в некое пространство имён, располагается в анонимном глобальном пространстве имён. Если для избежания двусмысленности вам нужно явно обратиться к глобальному пространству имен, вы можете сделать это с помощью префикса `global::`.

Пространства имён могут быть вложенными, путём вложения одного определения в другое, или же давая имена в виде `NameSpace1.NameSpace2`.

Некоторые другие типы определений могут быть объявлены внутри некого пространства имён используя то же соглашение по именованию, например `class NameSpace1.Test { ... }`. Обратите внимание, что конечном итоге, определение будет находится в пространстве имён, в которое вложено объявление, плюс пространство имён, объявленное в определении.
