Перечисление PropagationFlags [Записи контроля доступа (ACE)] в C # - PullRequest
3 голосов
/ 17 января 2011

Какой смысл иметь перечисление флагов, например PropagationFlags, если содержимое перечисления:

  1. Нет : указывает, что флаги наследования не установлены.
  2. NoPropagateInherit : указывает, что ACE не распространяется на дочерние объекты.
  3. InheritOnly : указывает, что ACE распространяется только на дочерние объекты.Это включает в себя как контейнерные, так и конечные дочерние объекты.

Что будет означать переменную с Нет | InheritOnly или NoPropagateInherit | InheritOnly ?

Я что-то упустил или это .NET Framework плохой дизайн?

1 Ответ

4 голосов
/ 17 января 2011

None в этом перечислении означает, что вы не устанавливаете какие-либо флаги, по сути, что вы хотите поведение по умолчанию. В руководящих принципах указано, что ноль (и, следовательно, ненулевой или, по существу, ноль) должен называться Нет В этом случае название может ввести в заблуждение, потому что вы можете подумать, что оно означает «Нет распространения», но это не так. Два других значения должны быть потенциально потенциально OR. OR 'с нуля всегда возвращает исходное значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...