Содержание
Правила оформления перечней
При составлении документов мы часто сталкиваемся со всевозможными перечнями. Бывают простые и многоуровневые списки. Как их оформлять? В каких случаях использовать нумерацию, буквы и тире? Когда в конце каждого элемента списка уместной будет точка, а когда нужна запятая или точка с запятой?
При составлении документов мы часто сталкиваемся со всевозможными перечнями. При этом правил их оформления существует великое множество. Попробуем разобраться в них.
Обозначение элементов списка
Предваряющее перечень предложение и элементы последующего списка (перечисляются после двоеточия) могут писаться в виде единой строки. Но в длинных и сложных списках гораздо удобнее располагать каждый элемент с новой строки. И тут у вас есть выбор: вы можете ограничиться использованием абзацного отступа (Пример 1) или же заменить его на цифру, букву или тире (Пример 2).
Пример 1
Пример 2
Перечни бывают:
-
простые, т. е. состоящие из одного уровня членения текста (см. Примеры 1 и 2) и
-
составные, включающие 2 и более уровней (см. Пример 3).
От глубины членения зависит выбор символов, которые будут предварять каждый элемент списка. При оформлении простых перечней можно использовать строчные («маленькие») буквы, арабские цифры или тире.
Гораздо сложнее обстоит дело с составными перечнями. Для большей наглядности сочетания различных символов в списках приведем пример оформления 4-уровневого перечня:
Пример 3
Из данного примера видно, что система нумерации рубрик выглядит следующим образом: заголовок первого уровня оформлен при помощи римской цифры, заголовки второго уровня – при помощи арабских цифр без скобок, заголовки третьего уровня – при помощи арабских цифр со скобками и, наконец, заголовки четвертого уровня оформлены с применением строчных букв со скобками. Если бы данный перечень предполагал еще один, пятый уровень, то его мы оформили бы при помощи тире.
Система нумерации частей составного перечня может состоять только из арабских цифр с точками. Тогда структура построения номера каждого элемента списка отражает его подчиненность по отношению к расположенным выше элементам (происходит наращивание цифровых показателей):
Пример 4
Если в конце списка стоит «и др.», «и т.д.» или «и т.п.», то такой текст не располагают на отдельной строке, а оставляют в конце предыдущего элемента списка (см. Примеры 3 и 4).
Пунктуационное оформление перечней
В Примере 3 хорошо видно, что заголовки первого и второго уровней начинаются с заглавных букв, а заголовки последующих уровней – со строчных. Это происходит потому, что после римских и арабских (без скобок) цифр по правилам русского языка ставится точка, а после точки, как все мы помним с начальной школы, начинается новое предложение, которое пишется с заглавной буквы. После арабских цифр со скобками и строчных букв со скобками точки не ставится, поэтому последующий текст начинается с маленькой буквы. Последнее положение, кстати, относится и к тире, поскольку трудно представить себе сочетание тире с точкой после него.
Обратите внимание на знаки препинания в конце заголовков перечня, а также в конце слов и словосочетаний в его составе.
Если заголовок предполагает последующее членение текста, то в конце него ставится двоеточие, если же последующего членения не будет, ставится точка.
Пример 5
Если части перечня состоят из простых словосочетаний или одного слова, они отделяются друг от друга запятыми (см. Пример 5). Если же части перечня усложнены (внутри них есть запятые), их лучше отделять точкой с запятой (см. Пример 6).
Пример 6
Наконец, если части перечня представляют собой отдельные предложения, они друг от друга отделяются точкой:
Пример 7
Иногда перечень оформляется таким образом, что его предваряет целое предложение (или несколько предложений). В этом случае в перечне используются лишь так называемые «низшие» уровни членения (строчные буквы со скобкой или тире), а точки в конце каждой части перечня не ставятся, т.к. в данном случае перечень представляет собой единое предложение:
Пример 8
Бывает, что в какие-либо части перечня, представляющие собой словосочетания, включается самостоятельное предложение, начинающееся с заглавной буквы. Независимо от того, что в конце предложения по правилам русского языка должна ставиться точка, каждый элемент списка будет отделяться от следующего точкой с запятой:
Пример 9
Согласованность элементов списка
При составлении перечней следует обязательно обращать внимание на то, чтобы начальные слова каждого элемента списка были согласованы между собой в роде, числе и падеже. В Примере 10 мы привели вариант неправильного оформления: последний элемент списка употреблен в ином падеже по сравнению с остальными. Подобные ошибки обычно встречаются в длинных перечнях с большим количеством элементов.
Пример 10
Также все элементы списка должны быть обязательно согласованы в роде, числе и падеже со словами (или словом) в предваряющем перечень предложении, после которого стоит двоеточие. Давайте вновь рассмотрим пример неправильного составления перечня, чтобы проанализировать ошибки.
Пример 11
Данный перечень может показаться безукоризненным, если бы не одно «но». Слово «соблюдение» требует после себя слов в родительном падеже, которые бы отвечали на вопросы «кого? чего?». Поэтому каждая рубрика должна начинаться так:
Итак, мы привели основные правила построения и оформления перечней, которые помогут сделать ваши документы еще более грамотными.
Как оформлять перечни? — «Грамота.ру» – справочно-информационный Интернет-портал «Русский язык»
Техническое оформление текста
Как оформлять перечни?
Обратите внимание: в этой статье все приведенные перечни одновременно выступают в качестве примеров технического оформления. |
Какой знак препинания ставится перед перечнем?
Фраза перед перечнем может оканчиваться двоеточием или точкой. Двоеточие ставится, если:
-
в этой фразе содержится слово или словосочетание, указывающее на то, что далее последует перечень;
-
перечень разъясняет то, о чем говорится в предшествующей ему фразе;
-
перечень непосредственно продолжает текст.
Если данные условия не соблюдаются, то перед перечнем ставится точка.
Примечание. Двоеточие перед перечнем может ставиться и в том случае, если элементы перечня начинаются с прописной буквы.
Как выделить элементы перечня?
Существует множество способов графического выделения элементов перечня. Вот основные:
1. Арабская или римская цифра с точкой.
2. Арабская цифра со скобкой.
3. Прописная буква с точкой.
4. Строчная буква со скобкой.
5. Тире.
6. Наборный знак (точка, квадрат, ромб, звездочка и т. д.).
Различают внутриабзацные перечни (элементы следуют в подбор) и перечни с элементами-абзацами (элементы перечня начинаются с красной строки).
В многоуровневых перечнях принято следующее разграничение:
-
прописные буквы и римские цифры обозначают высший уровень членения;
-
арабские цифры с точкой – средний уровень;
-
арабские цифры со скобкой, буквы со скобкой и наборные знаки используются для обозначения низшего уровня членения.
Когда в перечнях используются прописные, а когда строчные буквы?
С прописной буквы начинается текст каждого элемента в перечне, если ему предшествует цифра с точкой или прописная буква с точкой.
1. Язык.
2. Речь. |
А. Язык.
Б. Речь. |
Со строчной буквы начинается текст каждого элемента в перечне, если ему предшествует цифра со скобкой:
1) новое и старое;
2) старое и новое.
Аналогичным образом оформляются перечни, элементы которых начинаются строчной буквой со скобкой:
а) новое и старое;
б) старое и новое.
Какие знаки препинания ставятся после элементов перечня?
После абзацев – элементов перечня ставится:
а) запятая, если абзацы-элементы очень просты – из нескольких слов, без знаков препинания внутри, обозначены цифрой с закрывающей скобкой, строчной буквой с закрывающей скобкой, наборным знаком (например, тире) и начинаются со строчной буквы; но не будет ошибкой и постановка в подобных случаях после абзацев точки с запятой;
б) точка с запятой, если элементы не совсем просты, со знаками препинания внутри, обозначены цифрой с закрывающей скобкой, строчной буквой с закрывающей скобкой, наборным знаком и начинаются со строчной буквы, т. е. строчной букве в начале элемента соответствует точка с запятой в конце его. Пример – настоящий перечень;
в) точка, если элементы обозначены цифрой с точкой или прописной буквой с точкой. Точке после обозначения элемента соответствует точка в конце элемента.
Что читать об оформлении перечней и рубрикации?
-
Правила русской орфографии и пунктуации. Полный академический справочник / Под ред. В. В. Лопатина. М., 2013. С. 282–286.
-
А. Э. Мильчин, Л. К. Чельцова. Справочник издателя и автора. 2-е изд., М., 2003. С. 38–44.
CA1027: пометить перечисления с помощью FlagsAttribute (анализ кода) — .NET
Обратная связь
Редактировать
Твиттер
Фейсбук
Эл. адрес
- Статья
- 3 минуты на чтение
Товар | Значение |
---|---|
Идентификатор правила | СА1027 |
Категория | Дизайн |
Исправление ломается или не ломается | Неразрывный |
Причина
Значения перечисления являются степенью двойки или представляют собой комбинации других значений, определенных в перечислении, а атрибут System.FlagsAttribute отсутствует. Чтобы уменьшить количество ложных срабатываний, это правило не сообщает о нарушении для перечислений, имеющих смежные значения.
По умолчанию это правило рассматривает только внешне видимые перечисления, но это можно настроить.
Описание правила
Перечисление — это тип значения, определяющий набор связанных именованных констант. Примените FlagsAttribute к перечислению, когда его именованные константы могут быть осмысленно объединены. Например, рассмотрим перечисление дней недели в приложении, которое отслеживает доступные ресурсы дня. Если доступность каждого ресурса закодирована с помощью перечисления, в котором присутствует FlagsAttribute, может быть представлена любая комбинация дней. Без атрибута может быть представлен только один день недели.
Для полей, в которых хранятся комбинируемые перечисления, отдельные значения перечисления обрабатываются как группы битов в поле. Поэтому такие поля иногда называют битовыми полями . Чтобы объединить значения перечисления для хранения в битовом поле, используйте логические условные операторы. Чтобы проверить битовое поле, чтобы определить, присутствует ли конкретное значение перечисления, используйте логические операторы Boolean. Чтобы битовое поле правильно сохраняло и извлекало объединенные значения перечисления, каждое значение, определенное в перечислении, должно быть степенью двойки. В противном случае булевы логические операторы не смогут извлекать отдельные значения перечисления, хранящиеся в поле.
Как исправить нарушения
Чтобы исправить нарушение этого правила, добавьте в перечисление FlagsAttribute.
Когда подавлять предупреждения
Подавить предупреждение из этого правила, если вы не хотите, чтобы значения перечисления были комбинируемыми.
Подавить предупреждение
Если вы просто хотите подавить одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить, а затем повторно включить правило.
# прагма предупреждение отключить CA1027 // В этой строке находится код, нарушающий правило. #pragma предупреждение восстановить CA1027
Чтобы отключить правило для файла, папки или проекта, установите его серьезность на нет
в файле конфигурации.
[*.{cs,vb}] dotnet_diagnostic.CA1027.severity = нет
Чтобы отключить всю эту категорию правил, установите серьезность для категории на нет
в файле конфигурации.
[*.{cs,vb}] dotnet_analyzer_diagnostic. category-Design.severity = нет
Дополнительные сведения см. в разделе Как подавить предупреждения анализа кода.
Настройте код для анализа
Используйте следующую опцию, чтобы настроить, на каких частях вашей кодовой базы должно выполняться это правило.
- Включая определенные поверхности API
Этот параметр можно настроить только для этого правила, для всех правил или для всех правил в этой категории (Дизайн). Дополнительные сведения см. в разделе Параметры конфигурации правила качества кода.
Включить определенные поверхности API
Вы можете настроить, для каких частей вашей кодовой базы будет выполняться это правило, в зависимости от их доступности. Например, чтобы указать, что правило должно выполняться только для закрытой поверхности API, добавьте следующую пару «ключ-значение» в .editorconfig файл в вашем проекте:
dotnet_code_quality.CAXXXX.api_surface = частный, внутренний
Пример
В следующем примере DaysEnumNeedsFlags
— это перечисление, которое соответствует требованиям для использования FlagsAttribute, но не имеет его. Перечисление ColorEnumShouldNotHaveFlag
не имеет значений, являющихся степенью двойки, но неверно указывает FlagsAttribute. Это нарушает правило CA2217: не помечайте перечисления атрибутом FlagsAttribute.
// Нарушает правило: MarkEnumsWithFlags. общедоступное перечисление DaysEnumNeedsFlags { Нет = 0, Понедельник = 1, вторник = 2, Среда = 4, Четверг = 8, Пятница = 16, Все = понедельник | вторник | Среда | Четверг | Пятница } // Нарушает правило: DoNotMarkEnumsWithFlags. [Атрибут флагов] публичное перечисление ColorEnumShouldNotHaveFlag { Нет = 0, Красный = 1, Оранжевый = 3, Желтый = 4 }
- CA2217: не помечать перечисления с помощью FlagsAttribute
См. также
- System.FlagsAttribute
Обратная связь
Отправить и просмотреть отзыв для
Этот продукт
Эта страница
Просмотреть все отзывы о странице
CA1008: перечисления должны иметь нулевое значение (анализ кода) — .
NET
- Статья
- 4 минуты на чтение
Значение | |
---|---|
Идентификатор правила | СА1008 |
Категория | Дизайн |
Исправление ломается или не ломается | Non-breaking — когда вам будет предложено добавить значение None в перечисление без флажков. Нарушение — когда вам будет предложено переименовать или удалить любые значения перечисления. |
Причина
Перечисление без примененного System.FlagsAttribute не определяет член, имеющий нулевое значение. Или перечисление с примененным атрибутом FlagsAttribute определяет элемент, который имеет нулевое значение, но его имя не «Нет». Или перечисление определяет несколько элементов с нулевым значением.
По умолчанию это правило рассматривает только внешне видимые перечисления, но это можно настроить.
Описание правила
Значение по умолчанию для неинициализированного перечисления, как и для других типов значений, равно нулю. Перечисление без атрибута флагов должно определять элемент, который имеет нулевое значение, чтобы значение по умолчанию было допустимым значением перечисления. При необходимости назовите член «Нет» (или одно из дополнительных разрешенных имен). В противном случае присвойте ноль наиболее часто используемому члену. По умолчанию, если значение первого члена перечисления не задано в объявлении, его значение равно нулю.
Если перечисление, к которому применен FlagsAttribute, определяет элемент с нулевым значением, его имя должно быть «Нет» (или одно из дополнительных разрешенных имен), чтобы указать, что в перечислении не задано никаких значений. Использование члена с нулевым значением для любых других целей противоречит использованию FlagsAttribute в том смысле, что побитовые операторы AND
и OR
бесполезны с членом. Это означает, что только одному члену должно быть присвоено нулевое значение. Если в перечислении, атрибутированном флагами, встречаются несколько элементов, имеющих значение 0, Enum.ToString()
возвращает неверные результаты для членов, которые не равны нулю.
Как исправить нарушения
Чтобы исправить нарушение этого правила для перечислений без атрибутов флагов, определите член, имеющий нулевое значение; это неразрывное изменение. Для перечислений с атрибутами флагов, которые определяют элемент с нулевым значением, назовите этот элемент «Нет» и удалите все другие элементы, имеющие нулевое значение; это критическое изменение.
Когда подавлять предупреждения
Не подавлять предупреждение из этого правила, за исключением перечислений с атрибутами флагов, которые были отправлены ранее.
Подавить предупреждение
Если вы просто хотите подавить одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить, а затем повторно включить правило.
# прагма предупреждение отключить CA1008 // В этой строке находится код, нарушающий правило. #pragma предупреждение восстановить CA1008
Чтобы отключить правило для файла, папки или проекта, установите его серьезность на нет
в файле конфигурации.
[*.{cs,vb}] dotnet_diagnostic.CA1008.severity = нет
Чтобы отключить всю эту категорию правил, установите серьезность для категории на нет
в файле конфигурации.
[*.{cs,vb}] dotnet_analyzer_diagnostic.category-Design.severity = нет
Дополнительные сведения см. в разделе Как подавить предупреждения анализа кода.
Настройте код для анализа
Используйте следующую опцию, чтобы настроить, на каких частях вашей кодовой базы должно выполняться это правило.
- Включить определенные поверхности API
- Дополнительные имена полей с нулевым значением
Этот параметр можно настроить только для этого правила, для всех правил или для всех правил в этой категории (Дизайн). Дополнительные сведения см. в разделе Параметры конфигурации правила качества кода.
Включить определенные поверхности API
Вы можете настроить, для каких частей вашей кодовой базы будет выполняться это правило, в зависимости от их доступности. Например, чтобы указать, что правило должно выполняться только для закрытой поверхности API, добавьте следующую пару «ключ-значение» в .editorconfig файл в вашем проекте:
dotnet_code_quality.CAXXXX.api_surface = частный, внутренний
Дополнительные имена полей с нулевым значением
В .NET 7 и более поздних версиях можно настроить другие допустимые имена для поля перечисления с нулевым значением, помимо Нет
. Разделите несколько имен с помощью |
символов. В следующей таблице приведены некоторые примеры.
Значение опции | Резюме |
---|---|
dotnet_code_quality.CA1008.additional_enum_none_names = Никогда | Разрешены оба Нет и Никогда |
dotnet_code_quality. CA1008.additional_enum_none_names = Никогда|Ничего | Разрешено Нет , Никогда и Ничего |
Пример
В следующем примере показаны два перечисления, удовлетворяющие правилу, и перечисление BadTraceOptions
, что нарушает правило.
с использованием системы; пространство имен ca1008 { общедоступное перечисление TraceLevel { Выкл = 0, Ошибка = 1, Предупреждение = 2, Информация = 3, Подробно = 4 } [Флаги] общедоступное перечисление TraceOptions { Нет = 0, Стек вызовов = 0x01, Логический стек = 0x02, ДатаВремя = 0x04, Отметка времени = 0x08, } [Флаги] общедоступное перечисление BadTraceOptions { Стек вызовов = 0, Логический стек = 0x01, ДатаВремя = 0x02, Отметка времени = 0x04, } класс UseBadTraceOptions { статическая пустота MainTrace() { // Установить флаги. BadTraceOptions badOptions = BadTraceOptions.Логический стек | BadTraceOptions.Timestamp; // Проверяем, установлен ли CallStack. если ((badOptions и BadTraceOptions.CallStack) == BadTraceOptions.CallStack) { // Это утверждение «если» всегда истинно. } } } }
Система импорта
Пространство имен ca1008
Уровень трассировки общедоступного перечисления
Выкл = 0
Ошибка = 1
Предупреждение = 2
Информация = 3
Подробно = 4
Конец перечисления
<Флаги>
Общедоступное перечисление TraceOptions
Нет = 0
Стек вызовов = &h2
Логический стек = &h3
ДатаВремя = &h5
Отметка времени = &H8
Конец перечисления
<Флаги>
Общедоступное перечисление BadTraceOptions
Стек вызовов = 0
Логический стек = &h2
ДатаВремя = &h3
Отметка времени = &h5
Конец перечисления
Класс UseBadTraceOptions
Общая подпрограмма Main1008()
«Установите флаги.