В .NET определяемые классы и прочие типы сами по себе не существуют, а заключаются в специальные контейнеры, называемые пространствами имен. Эти пространства дают возможность организовывать код программы в специальные логические блоки, что, в свою очередь, позволяет объединять и отделять от остального кода некоторую функциональность, связанную общей идеей либо выполняющую определенную задачу.