Пространства имен и Используя директивы

file *|grep directory

O / P (На моей машине) -

[root@rhel6 ~]# file *|grep directory
mongo-example-master:    directory
nostarch:                directory
scriptzz:                directory
splunk:                  directory
testdir:                 directory

Вышеуказанный результат можно улучшить, используя cut.

file *|grep directory|cut -d':' -f1
mongo-example-master
nostarch
scriptzz
splunk
testdir

* could be replaced with any path that's permitted
 file - determine file type
 grep - searches for string named directory
 -d - to specify a field delimiter
 -f1 - denotes field 1
6
задан John Saunders 26 December 2013 в 19:48
поделиться

6 ответов

Нет, это годится только для раздела пространства имен внутри файла. Не для всех файлов внутри пространства имен.

Если вы поместите оператор using за пределы пространства имен, то он будет применяться ко всему файлу независимо от пространства имен.

Он также будет сначала выполнять поиск в Usings внутри пространства имен, прежде чем перейти к внешний прицел.

11
ответ дан 8 December 2019 в 18:39
поделиться

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

Ссылка :

Область директивы using ограничено файлом, в котором он появляется.

2
ответ дан 8 December 2019 в 18:39
поделиться

Нет, это не так, и поэтому нет, это не так.

Учтите тот факт, что за пределами объявления пространства имен вы находитесь в глобальном пространстве имен . Влияют ли операторы using в этой области исходного файла на глобальное пространство имен в других исходных файлах?

0
ответ дан 8 December 2019 в 18:39
поделиться

Нет. Вам нужно будет включить пространства имен в каждый класс, кроме частичных классов.

Одно замечание: вы делаете очень хорошую практику, помещая операторы using внутри пространства имен. Это очень хороший синтаксис.

Продолжайте в том же духе.

0
ответ дан 8 December 2019 в 18:39
поделиться

Операторы using действительны для файла кода, в котором они появляются, с небольшими изменениями; если вы поместите операторы using внутри пространства имен, они будут ограничены областью действия этого пространства имен, но все равно только в том же файле кода.

0
ответ дан 8 December 2019 в 18:39
поделиться

Использование применяется только к текущему файлу. Независимо от того, находятся ли они внутри или вне объявления пространства имен, имеет лишь небольшую разницу:

Порядок поиска для типов следующий:

  1. начало в самом внутреннем объявлении пространства имен
  2. смотреть в текущем пространстве имен
  3. искать в использование текущего пространства имен
  4. идет вверх до объявления родительского пространства имен и повторяется с шага 2

В результате эта программа будет компилироваться нормально:

namespace MyProject.Main {
    using System;

    class Program {
        public static void Main(string[] args) {
            Console.WriteLine("Hello, World!");
        }
    }
}

// in another file:
namespace MyProject.Console {
    class Test {}
}

Но если вы переместите с помощью System; ] вверх, то компиляция завершится ошибкой (MyProject.Console.WriteLine не существует).

0
ответ дан 8 December 2019 в 18:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: