diff --git a/StyleCop.Analyzers/StyleCop.Analyzers/DocumentationRules/DocumentationResources.ru-RU.resx b/StyleCop.Analyzers/StyleCop.Analyzers/DocumentationRules/DocumentationResources.ru-RU.resx index 54e811751..d043ad66c 100755 --- a/StyleCop.Analyzers/StyleCop.Analyzers/DocumentationRules/DocumentationResources.ru-RU.resx +++ b/StyleCop.Analyzers/StyleCop.Analyzers/DocumentationRules/DocumentationResources.ru-RU.resx @@ -117,11 +117,23 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Создать документацию для конструктора + + + Создать документацию деструктора + Уничтожает экземпляр класса - + класс. + + + Унаследовать документацию + + + Создать документацию для метода Инициализирует новый экземпляр {0} @@ -150,6 +162,12 @@ Получает значение, показывающее, + + Возвращает + + + Возвращает значение, показывающее, + Задает @@ -162,6 +180,12 @@ + + Объект + + + представляющий результат асинхронной операции. + класса diff --git a/StyleCop.Analyzers/StyleCop.Analyzers/Helpers/HelpersResources.ru-RU.resx b/StyleCop.Analyzers/StyleCop.Analyzers/Helpers/HelpersResources.ru-RU.resx new file mode 100644 index 000000000..cd8ebae40 --- /dev/null +++ b/StyleCop.Analyzers/StyleCop.Analyzers/Helpers/HelpersResources.ru-RU.resx @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Исправить все '{0}' + + + Исправить все '{0}' в '{1}' + + + Исправить все '{0}' в решении + + \ No newline at end of file diff --git a/StyleCop.Analyzers/StyleCop.Analyzers/ReadabilityRules/ReadabilityResources.ru-RU.resx b/StyleCop.Analyzers/StyleCop.Analyzers/ReadabilityRules/ReadabilityResources.ru-RU.resx new file mode 100644 index 000000000..bdb2b79ff --- /dev/null +++ b/StyleCop.Analyzers/StyleCop.Analyzers/ReadabilityRules/ReadabilityResources.ru-RU.resx @@ -0,0 +1,570 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Исправить отступы + + + Удалить регион + + + Заменить 'base.' на 'this.' + + + Вызов члена из наследуемого класса начинается с `base.`, а локальный класс не содержит переопределения или реализации этого члена. + + + Не добавляйте к вызовам префикс base, если не существует локальной реализации + + + Не добавляйте к вызовам префикс base, если не существует локальной реализации + + + Добавить к ссылке префикс 'this.' + + + Вызов экземпляра-члена локального класса или базового класса не имеет префикса 'this.' в файле кода C#. + + + Префикс локального вызова с this + + + Префикс локального вызова с this + + + Удаление разделяющих строк + + + Конструкция запроса C# не начинается с той же строки, что и предыдущая, или со следующей строки. + + + Конструкция запроса должна следовать за предыдущей конструкцией. + + + Конструкция запроса должна следовать за предыдущей конструкцией + + + Разместить на нескольких строках + + + Разместить в одной строке + + + Конструкции в выражении запроса C# не размещаются на одной строке, и каждая конструкция не размещается на своей строке. + + + Конструкции запроса должны быть в отдельных строках или все в одной строке + + + Конструкции запроса должны быть в отдельных строках или все в одной строке + + + Конструкция в выражении запроса C# начинается с той же строки, что и предыдущая конструкция, если предыдущая конструкция занимает несколько строк. + + + Конструкция запроса должна начинаться с новой строки, если предыдущая конструкция охватывает несколько строк + + + Вставить новую строку + + + Конструкция запроса должна начинаться с новой строки, если предыдущая конструкция охватывает несколько строк + + + Конструкция в выражении запроса C# охватывает несколько строк и начинается не со своей строки. + + + Конструкции запроса, охватывающие несколько строк, должны начинаться в собственной строке + + + Конструкции запроса, охватывающие несколько строк, должны начинаться в собственной строке + + + Удаление пустого оператора + + + Код на C# содержит лишнюю точку с запятой. + + + Код не должен содержать пустых операторов + + + Код не должен содержать пустых операторов + + + Вставить новую строку + + + Код C# содержит более одного оператора в одной строке. + + + Код не должен содержать несколько операторов в одной строке + + + Код не должен содержать несколько операторов в одной строке + + + Оператор C# содержит комментарий между объявлением оператора и открывающей скобкой оператора. + + + Блоковые операторы не должны содержать встроенных комментариев + + + Блоковые операторы не должны содержать встроенных комментариев + + + Оператор C# содержит тег #region между объявлением оператора и открывающей скобкой оператора. + + + Блочные операторы не должны содержать встроенных областей #region + + + Открывающая круглая скобка или квадратная скобка не размещена в той же строке, что и имя метода/индексатора/атрибута/массива. + + + Открывающая круглая скобка или квадратная скобка должна находиться в строке объявления + + + Открывающая круглая скобка или квадратная скобка должна находиться в строке объявления + + + Закрывающая круглая скобка или квадратная скобка в вызове или объявлении метода/индексатора/атрибута/массива/конструктора/делегата в C# расположена не на той же строке, что и последний параметр. + + + Закрывающая скобка должна находиться на строке последнего параметра + + + Закрывающая скобка должна находиться на строке последнего параметра + + + Закрывающая круглая скобка или квадратная скобка в вызове метода или индексатора C#, или в объявлении метода или индексатора не размещается на той же строке, что и открывающая скобка, если элемент не принимает никаких параметров. + + + Закрывающая скобка должна находиться на одной строке с открывающей скобкой + + + Закрывающая скобка должна находиться на одной строке с открывающей скобкой + + + Запятая между двумя параметрами в вызове метода или индексатора C#, или в объявлении метода или индексатора не размещается на той же строке, что и предыдущий параметр. + + + Запятая должна стоять в той же строке, что и предыдущий параметр + + + Запятая должна стоять в той же строке, что и предыдущий параметр + + + Начало списка параметров для вызова метода/конструктора/индексатора/массива/оператора или объявления не начинается в той же строке, что и открывающая скобка, или в строке после открывающей скобки. + + + Список параметров должен следовать за объявлением + + + Список параметров должен следовать за объявлением + + + Параметр в вызове или объявлении метода или индексатора C# не начинается в той же строке, что и предыдущий параметр, или в следующей строке. + + + Параметр должен начинаться в строке, следующей за предыдущим параметром + + + Параметр должен следовать за запятой + + + Перенести первый аргумент на следующую строку + + + Параметры вызова или объявления метода или индексатора C# занимают несколько строк, но первый параметр не начинается на строке после открывающей скобки. + + + Параметры должны начинаться в строке следующей сразу после объявления, если параметр занимает несколько строк + + + Разделённые параметры должны начинаться в строке следующей сразу после объявления + + + Параметры вызова или объявления метода или индексатора C# не находятся в одной строке или каждый в отдельной строке. + + + Все параметры должны быть расположены в одной строке или каждый параметр должен быть расположен в отдельной строке + + + Параметры должны находиться в одной строке или в отдельных строках + + + Параметр метода/индексатора/атрибута/массива C#, кроме первого параметра, занимает несколько строк. Если параметр короткий, поместите весь параметр в одну строку. В противном случае сохраните содержимое параметра во временной переменной и передайте временную переменную в качестве параметра. + + + Параметр занимает несколько строк + + + Параметр не должен занимать несколько строк + + + Удалить пустой комментарий + + + Комментарий C# не содержит никакого текста комментария. + + + Комментарии должны содержать текст + + + Комментарии должны содержать текст + + + Заменить на встроенный тип + + + В коде используется один из основных типов C#, но не используется встроенный псевдоним для этого типа. + + + Использовать встроенный псевдоним типа + + + Использовать встроенный псевдоним типа + + + Заменить на string.Empty + + + В коде C# присутствует пустая строка, записанная как "". + + + Используйте string.Empty для пустых строк + + + Используйте string.Empty для пустых строк + + + Код на языке C# содержит область #region в теле элемента кода. + + + Область #region не должна находиться внутри элемента кода + + + Не размещайте области #region внутри элементов + + + Код на языке C# содержит область #region. + + + Не используйте области #region + + + Не используйте области #region + + + Тип Nullable<T> был определен без использования сокращения C#. Например, Nullable<DateTime> был использован вместо предпочтительного DateTime? + + + Использовать сокращение для типов nullable + + + Использовать сокращение для типов nullable + + + Вызов члена не имеет префикса 'this.', 'base.', 'object.' или 'typename.' для указания предполагаемого вызова метода в файле кода C#. + + + Правильно указывайте префиксы вызовов + + + Поместить каждое ограничение типа в новую строку + + + Каждая конструкция ограничения типа для параметра универсального типа должна быть указана в отдельной строке кода. + + + Ограничения обобщенных типов должны располагаться на своей собственной строке + + + Ограничения обобщенных типов должны располагаться на своей собственной строке + + + Разместить инициализатор конструктора в своей собственной строке + + + Инициализатор конструктора, включая символ двоеточия, должен располагаться в отдельной строке. + + + Помещать инициализаторы конструкторов в своей собственной строке + + + Помещать инициализаторы конструкторов в своей собственной строке + + + Заменить на default(T) + + + При создании нового экземпляра типа значений T синтаксис 'default(T)' функционально эквивалентен синтаксису 'new T()'. Чтобы избежать путаницы в поведении результирующего экземпляра, предпочтительнее использовать первую форму. + + + Не использовать конструктор по умолчанию для типов значений + + + Не использовать конструктор по умолчанию для типов значений + + + Заменить на лямбда. + + + Лямбда-выражения более лаконичны и легче читаются, чем анонимные методы, поэтому им следует отдавать предпочтение во всех случаях, когда эти два выражения функционально эквивалентны. + + + Использовать лямбда-синтаксис + + + Использовать лямбда-синтаксис + + + Поменять местами операнды + + + При сравнении переменной и литерала, переменная должна располагаться с левой стороны чтобы обеспечить максимальную читабельность. + + + Значения констант должны располагаться в правой части сравнений + + + Используйте удобочитаемые условия + + + Перенесити каждое поле в новую строку + + + Каждое поле должно быть объявлено в своей собственной строке, чтобы четко видеть каждое поле типа и позволить правильно документировать поведение каждого поля. + + + Каждое поле должно быть объявлено в своей собственной строке + + + Не объединяйте поля + + + Поместить каждый атрибут в свои собственные квадратные скобки + + + Для максимальной читабельности каждое использование атрибута должно быть заключено в собственные квадратные скобки. + + + Каждый атрибут должен быть заключен в свои собственные квадратные скобки + + + Не объединяйте атрибуты + + + Разместить атрибут в отдельной строке. + + + Каждый атрибут должен располагаться в своей собственной строке кода. + + + Каждый атрибут должен располагаться в своей собственной строке кода + + + Атрибуты не должны совместно использовать одну строку + + + Указать полную квалификацию директивы using + + + Все директивы using должны быть квалифицироваными. + + + Директива using для пространства имен '{0}' должна иметь полную квалификацию + + + Директива using для типа '{0}' должна быть квалифицированной + + + Директивы using должны быть квалифицированными + + + Размещайте значения перечислений в своих собственных строках + + + Значения перечислений следует размещать в отдельных строках для максимальной читабельности. + + + Значения перечислений должны располагаться в отдельных строках + + + Значения перечислений должны располагаться в отдельных строках + + + Элементы одного уровня в синтаксическом дереве должны иметь одинаковый отступ. + + + Элементы должны иметь одинаковый отступ + + + Элементы должны иметь одинаковый отступ + + + Использовать суффиксную нотацию для литералов вместо приведения + + + Используйте суффиксную нотацию для литералов вместо приведения, чтобы улучшить читабельность, избежать ошибок, связанных с неверными приведениями, и гарантировать, что будет получен оптимальный IL. + + + Используйте суффиксную нотацию для литералов вместо приведения + + + Используйте суффиксную нотацию для литералов вместо приведения + + + Заменить на синтаксис кортежа + + + Используйте синтаксис кортежа вместо его реализующего основного типа ValueTuple. + + + Используйте синтаксис кортежа + + + Используйте синтаксис кортежа + + + Использовать имя элемента кортежа + + + На элемент кортежа была сделана ссылка по имени его метаданных, когда доступно имя элемента. + + + Обращайтесь к элементам кортежа по имени + + + Обращайтесь к элементам кортежа по имени + + + Удалить префикс 'this.' + + + Локальный вызов члена экземпляра класса или базового класса имеет префикс `this.`. + + + Не добавляйте к локальным вызовам префикс 'this.' + + + Не добавляйте к локальным вызовам префикс 'this.' + + \ No newline at end of file diff --git a/StyleCop.Analyzers/StyleCop.Analyzers/SpacingRules/SpacingResources.ru-RU.resx b/StyleCop.Analyzers/StyleCop.Analyzers/SpacingRules/SpacingResources.ru-RU.resx new file mode 100644 index 000000000..7e1010525 --- /dev/null +++ b/StyleCop.Analyzers/StyleCop.Analyzers/SpacingRules/SpacingResources.ru-RU.resx @@ -0,0 +1,475 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Неправильно выбран интервал вокруг ключевого слова C#. + + + + + + + + + + + + + За ключевым словом '{0}' должен{1} следовать пробел + + + Ключевые слова должны быть расставлены правильно + + + В файле кода на языке C# неверно задан пробел вокруг запятой. + + + Запятые должны{0} {1} пробелами + + + Запятые должны быть расставлены правильно + + + В файле кода на языке C# неправильно задан пробел вокруг точки с запятой. + + + Точки с запятой должны {0} быть {1} пробелом + + + Точки с запятой должны быть расставлены правильно + + + Исправить пробелы + + + В файле кода на языке C# неверно задан пробелы вокруг символа оператора. + + + За оператором '{0}' должен следовать пробел. + + + Оператор '{0}' не должен появляться в конце строки. + + + За оператором '{0}' не должен следовать комментарий. + + + После оператора '{0}' не должно быть пробельных символов. + + + Оператору '{0}' не должны предшествовать пробельные символы. + + + Оператору '{0}' должен предшествовать пробел. + + + Символы должны быть расположены правильно + + + Исправить пробелы + + + Строка в заголовке документации над элементом C# не начинается с одинарного пробела. + + + Строка документации должна начинаться с пробела + + + Строки документации должны начинаться с одинарного пробела + + + Исправить пробелы + + + Однострочный комментарий в файле кода C# не начинается с пробела. + + + Однострочный комментарий должен начинаться с пробела + + + Однострочные комментарии должны начинаться с одинарного пробела + + + Ключевому слову препроцессора C# предшествует пробел. + + + Ключевому слову препроцессора '{0}' не должен предшествовать пробел + + + Ключевым словам препроцессора не должен предшествовать пробел + + + За ключевым словом operator в методе перегрузки оператора C# не следует пробел. + + + За ключевым словом оператора должен следовать пробел + + + За ключевым словом оператора должен следовать пробел + + + Исправить пробелы + + + Открывающая скобка в операторе C# расставлены с неправильно. + + + За открывающей скобкой не должен следовать пробел. + + + Открывающей скобке не должен предшествовать пробел. + + + Открывающей скобке должен предшествовать пробел. + + + Открывающая скобка должна быть расположена правильно + + + Закрывающая скобка в операторе C# расположена с неправильно. + + + За закрывающей скобкой должен следовать пробел + + + За закрывающей скобкой не должен следовать пробел + + + Закрывающей скобке не должен предшествовать пробел + + + Закрывающая скобка должна быть расположена правильно + + + Открывающая квадратная скобка в операторе C# расположена не правильно. + + + За открывающими квадратными скобками не должен следовать пробел + + + Открывающим квадратным скобкам не должен предшествовать пробел + + + Открывающие квадратные скобки должны быть расставлены правильно + + + Закрывающая квадратная скобка в операторе C# расположена неправильно. + + + Закрывающая квадратная скобка должна{0} быть {1} пробел + + + Закрывающие квадратные скобки должны быть расставлены правильно + + + Открывающая скобка в элементе C# расположена неправильно. + + + Открывающая скобка должна {0} быть {1} пробел + + + Открывающие скобки должны быть расставлены правильно + + + Закрывающая скобка в элементе C# расположена неправильно. + + + Закрывающая скобка должна {0} быть {1} пробел + + + Закрывающие скобки должны быть расставлены правильно + + + Открывающая скобка обобщенного типа в элементе C# расположена неправильно. + + + Открывающие скобки обобщенного типа не должны {0} пробел + + + Открывающие скобки обобщенного типа должны быть расставлены правильно + + + Закрывающая скобка обобщенного типа в элементе C# расположена неправильно. + + + За закрывающей скобкой обобщенного типа должен следовать пробел + + + За закрывающей скобкой обобщенного типа не должен следовать пробел + + + Закрывающейся скобке обобщенного типа не должен предшествовать пробел + + + Закрывающие скобки обобщенного типа должны быть расставлены правильно + + + Открывающая скобка атрибута в элементе C# расставлена неправильно. + + + За открывающими скобками атрибутов не должен следовать пробел + + + Открывающие скобки атрибутов должны быть расставлены правильно + + + Закрывающая скобка атрибута в элементе C# расположена с неправильно. + + + Закрывающие скобки атрибута не должны предваряться пробелом + + + Закрывающие скобки атрибута должны быть расставлены правильно + + + Исправить пробелы + + + Символ nullable типа в элементе C# расположен неправильно. + + + Перед символом nullable типа не должен стоять пробел + + + Символы nullable типа должны быть расставлены правильно + + + В файле кода C# неверно задан пробел вокруг символа доступа к члену. + + + За символом доступа к члену '{0}' не должен следовать пробел + + + Символ доступа к члену '{0}' не должен предваряться пробелом + + + Символы доступа к члену должны быть правильно расставлены + + + Символ инкремента или декремента в элементе C# расположен неправильно. + + + {0} '{1}' не должен {2} пробел + + + Символы инкремента и декремента должны быть расставлены правильно + + + Отрицательный знак в элементе C# расположен неправильно. + + + Отрицательный знак должен {0} быть {1} пробел + + + Отрицательные знаки должны быть правильно расставлены + + + Положительный знак в элементе C# расположен неправильно. + + + Положительный знак должен {0} быть {1} пробел + + + Положительные знаки должны быть правильно расставлены + + + Символ разыменования или символ доступа к элементу C# расположен неправильно. + + + За символом ссылки '*' должен следовать пробел + + + Символ ссылки '*' не должен появляться в начале строки + + + Символ ссылки '*' не должен появляться в конце строки + + + За символом ссылки '*' не должен следовать пробел + + + Символ ссылки '*' не должен предваряться пробелом + + + Между символами ссылок и доступа должны быть правильно расставлены пробелы + + + Двоеточие в элементе C# расставлено неправильно. + + + После двоеточия должен стоять пробел + + + Двоеточию не должен предшествовать пробел + + + Двоеточию должен предшествовать пробел + + + Двоеточия должны быть расставлены правильно + + + Исправить пробелы + + + Код содержит несколько пробельных символов подряд. + + + Код не должен содержать несколько пробельных символов подряд + + + Код не должен содержать несколько пробельных символов в строке + + + Неявно типизированное выделение массива в файле кода C# располагается неправильно. + + + За ключевым словом '{0}' не должен следовать пробел или пустая строка + + + Код не должен содержать пробел после ключевого слова new или stackalloc при неявно типизированном выделении массива + + + Исправить символы табуляции + + + Код содержит символы табуляции или пробела, которые не соответствуют текущим настройкам проекта. + + + Табуляция и пробелы должны использоваться правильно + + + Используйте табуляцию правильно + + + Удалить пробельные символы в конце строки + + + В конце строки кода не должно быть пробелов. + + + Код не должен содержать пробельные символы в конце строки + + + Код не должен содержать пробельные символы в конце строки + + + Исправить пробелы + + \ No newline at end of file diff --git a/documentation/ru-ru/ReadabilityRules.md b/documentation/ru-ru/ReadabilityRules.md new file mode 100644 index 000000000..82202f3ce --- /dev/null +++ b/documentation/ru-ru/ReadabilityRules.md @@ -0,0 +1,45 @@ +### (SA1100-) +, . + + | | +-----------|------|------------- +[SA1100](SA1100.md) | DoNotPrefixCallsWithBaseUnlessLocalImplementationExists | `base.`, . +[SA1101](SA1101.md) | PrefixLocalCallsWithThis | - `this.` C#. +[SA1102](SA1102.md) | QueryClauses | C# , , . +[SA1103](SA1103.md) | QueryClauses | C# , . +[SA1104](SA1104.md) | QueryClauses | C# , , . +[SA1105](SA1105.md) | QueryClauses | C# . +[SA1106](SA1106.md) | CodeMustNotContainEmptyStatements | C# . +[SA1107](SA1107.md) | CodeMustNotContainMultipleStatementsOnOneLine | C# . +[SA1108](SA1108.md) | BlockStatementsMustNotContainEmbeddedComments | C# . +[SA1109](SA1109.md) | BlockStatementsMustNotContainEmbeddedRegions | C# `#region` . +[SA1110](SA1110.md) | OpeningParenthesisMustBeOnDeclarationLine | C# , . +[SA1111](SA1111.md) | ClosingParenthesisMustBeOnLineOfLastParameter | C#, , , . +[SA1112](SA1112.md) | ClosingParenthesisMustBeOnLineOfOpeningParenthesis | C#, , , . +[SA1113](SA1113.md) | CommaMustBeOnSameLineAsPreviousParameter | C#, , . +[SA1114](SA1114.md) | ParameterListMustFollowDeclaration | , , . +[SA1115](SA1115.md) | ParameterMustFollowComma | C# , , . +[SA1116](SA1116.md) | SplitParametersMustStartOnLineAfterDeclaration | C# , . +[SA1117](SA1117.md) | ParametersMustBeOnSameLineOrSeparateLines | C# . +[SA1118](SA1118.md) | ParameterMustNotSpanMultipleLines | C#, , . +[SA1120](SA1120.md) | CommentsMustContainText | C# . +[SA1121](SA1121.md) | UseBuiltInTypeAlias | C#, . +[SA1122](SA1122.md) | UseStringEmptyForEmptyStrings | C# , `""`. +[SA1123](SA1123.md) | DoNotPlaceRegionsWithinElements | C# `#region` . +[SA1124](SA1124.md) | DoNotUseRegions | C# `#region`. +[SA1125](SA1125.md) | UseShorthandForNullableTypes | **Nullable** C#. +[SA1126](SA1126.md) | PrefixCallsCorrectly | `this.`, `base.`, `object.` `typename.` C#. +[SA1127](SA1127.md) | GenericTypeConstraintsMustBeOnOwnLine | , , C#. +[SA1128](SA1128.md) | ConstructorInitializerMustBeOnOwnLine | , , C#. +[SA1129](SA1129.md) | DoNotUseDefaultValueTypeConstructor | `new T()`. +[SA1130](SA1130.md) | UseLambdaSyntax | `delegate () { }`, - `() => { }`. +[SA1131](SA1131.md) | UseReadableConditions | , . +[SA1132](SA1132.md) | DoNotCombineFields | . +[SA1133](SA1133.md) | DoNotCombineAttributes | . +[SA1134](SA1134.md) | AttributesMustNotShareLine | , . +[SA1135](SA1135.md) | UsingDirectivesMustBeQualified | `using` . +[SA1136](SA1136.md) | EnumValuesShouldBeOnSeparateLines | . +[SA1137](SA1137.md) | ElementsShouldHaveTheSameIndentation | , , . +[SA1139](SA1139.md) | UseLiteralsSuffixNotationInsteadOfCasting | . +[SA1141](SA1141.md) | UseTupleSyntax | ValueTuple - . +[SA1142](SA1142.md) | ReferToTupleElementsByName | , . diff --git a/documentation/ru-ru/SA0001.md b/documentation/ru-ru/SA0001.md new file mode 100644 index 000000000..845e59a55 --- /dev/null +++ b/documentation/ru-ru/SA0001.md @@ -0,0 +1,69 @@ +# SA0001 + + + + + + + + + + + + + + +
TypeNameSA0001XmlCommentAnalysisDisabled
CheckIdSA0001
КатегорияСпециальные правила
+ +:memo: Это правило является новым для анализаторов StyleCop, и его не было в StyleCop Classic. + +## Причина + +Вся диагностика комментариев к XML-документации была отключена из-за текущей конфигурации проекта. + +## Описание правила + +Нарушение этого правила происходит, когда компиляция (проекта) содержит один или несколько файлов, которые анализируются с параметром +`DocumentationMode`, установленным в `None`. Чаще всего это происходит, когда проект настроен на то, чтобы не создавать XML-файл документации во время сборки. + +Каждый проект должен быть настроен на включение XML-файла документации в скомпилированный результат. В противном случае +семантика всех комментариев документации не проверяется, и комментарии, скорее всего, будут содержать все большее количество +ошибок с течением времени. + +## Как устранить нарушения + +Чтобы исправить нарушение этого правила, включите XML-файл документации как часть выходных данных проекта, добавив `true` в файл проекта. + +**Примечание:** В некоторых случаях включение вывода XML-документации приведет к появлению большого количества предупреждений CS1573, CS1591, +и/или CS1712. Чтобы улучшить способность команд устранять SA0001 до появления CS1573, CS1591 и CS1712, +рассмотрите возможность отключения этих предупреждений одним из следующих способов. + +### Подавление с помощью файлов набора правил + +CS1573, CS1591 и CS1712 легче всего подавить, отредактировав файл набора правил. Серьезность этих правил может быть +установить в **Hidden** или **None**, чтобы скрыть их от вывода сборки. При установке значения **Hidden** исправления кода для этих +будут работать нормально, но сами предупреждения будут скрыты от глаз. + +### Подавление через файл проекта + +Для пользователей, которые иногда собирают свой проект на старых версиях C# (которые не поддерживают файлы наборов правил), эти +предупреждения можно подавить, настроив элемент `` в файле проекта. Один из простых способов настроить +вывод документации (который исправляет SA0001) и подавление предупреждений CS1573, CS1591 и CS1712, - это добавить в файл проекта следующую группу свойств. + +```xml + + + $(OutputPath)$(AssemblyName).xml + $(NoWarn),1573,1591,1712 + +``` + +## Как подавить нарушения + +Это предупреждение можно подавить, только отключив его в файле **ruleset** для проекта. \ No newline at end of file diff --git a/documentation/ru-ru/SA0002.md b/documentation/ru-ru/SA0002.md new file mode 100644 index 000000000..7b09ff903 --- /dev/null +++ b/documentation/ru-ru/SA0002.md @@ -0,0 +1,38 @@ +# SA0002 + + + + + + + + + + + + + + +
TypeNameSA0002InvalidSettingsFile
CheckIdSA0002
КатегорияСпециальные правила
+ +:memo: Это правило является новым для анализаторов StyleCop, и его не было в StyleCop Classic. + +## Причина + +Файл настроек **stylecop.json** не может быть загружен из-за ошибки десериализации. + +## Описание правила + +Это правило сообщает о случаях, когда файл настроек **StyleCop Analyzers** не может быть загружен. Когда это происходит, различные +анализаторы автоматически возвращаются к использованию настроек по умолчанию, которые могут не соответствовать ожиданиям пользователя. + +## Как устранить нарушения + +Чтобы исправить нарушение этого правила, начните с проверки следующих пунктов: + +* Убедитесь, что stylecop.json содержит допустимый синтаксис JSON. Файл можно открыть в Visual Studio 2015 для проверки распространенных ошибок (они сообщаются IDE в окне "Ошибки"). +* Просмотрите документацию [configuration](Configuration.md) и убедитесь, что содержимое stylecop.json содержит правильные настройки. + +## Как подавить нарушения + +Это предупреждение можно подавить, только отключив его в файле **ruleset** для проекта. diff --git a/documentation/ru-ru/SA1000.md b/documentation/ru-ru/SA1000.md new file mode 100644 index 000000000..17e8fe90d --- /dev/null +++ b/documentation/ru-ru/SA1000.md @@ -0,0 +1,56 @@ +## SA1000 + + + + + + + + + + + + + + +
TypeNameSA1000KeywordsMustBeSpacedCorrectly
CheckIdSA1000
КатегорияПравила расстановки пробелов
+ +## Причина + +Пробелы вокруг ключевого слова C# указаны неверно. + +## Описание правила + +Нарушение этого правила происходит, когда пробелы вокруг ключевого слова некорректны. + +Следующие ключевые слова C# всегда должны сопровождаться одинарным пробелом: `and`, `await`, `case`, `catch`, `fixed`, `for`, +`foreach`, `from`, `group`, `if`, `in`, `is`, `into`, `join`, `let`, `lock`, `not`, `orderby`, `or`, `out`, `ref`, `return`, `select`, +`switch`, `using`, `var`, `where`, `while`, `yield`. + +После следующих ключевых слов не должно быть пробелов: `checked`, `default`, `nameof`, ``sizeof`, `typeof`, `unchecked`. + +После ключевых слов `new` и `stackalloc` всегда должен стоять пробел, за исключением следующих случаев: + +* Ключевое слово `new` или `stackalloc` используется для создания нового неявно-типизированного массива. В этом случае не должно быть + пробела между ключевым словом и открывающей скобкой массива. +* Ключевое слово `new` является частью неявного создания объекта (target-typed new). В этом случае между ключевым словом и открывающей скобкой не должно быть пробела. +* Ключевое слово `new` является частью общего ограничения типа. В этом случае не должно быть пробела между ключевым словом `new` + ключевым словом и открывающей круглой скобкой. + +За ключевым словом `throw` всегда должен следовать пробел, если только оно не является частью оператора повторного выброса, в этом случае +не должно быть пробела между ключевым словом `throw` и точкой с запятой. + +## Как исправить нарушения + +Чтобы исправить нарушение этого правила, добавьте или уберите пробел после ключевого слова в соответствии с приведенным выше описанием. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.SpacingRules", "SA1000:KeywordsMustBeSpacedCorrectly", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1000 // KeywordsMustBeSpacedCorrectly +#pragma warning restore SA1000 // KeywordsMustBeSpacedCorrectly +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1001.md b/documentation/ru-ru/SA1001.md new file mode 100644 index 000000000..25fc6f62e --- /dev/null +++ b/documentation/ru-ru/SA1001.md @@ -0,0 +1,47 @@ +## SA1001 + + + + + + + + + + + + + + +
TypeNameSA1001CommasMustBeSpacedCorrectly
CheckIdSA1001
КатегорияПравила расстановки пробелов
+ +## Причина + +В файле кода на языке C# неверно задан пробел вокруг запятой. + +## Описание правила + +Нарушение этого правила происходит, когда интервал между запятыми неправильный. + +После запятой должен следовать одинарный пробел, за исключением следующих случаев. + +* Запятая может стоять в конце строки. +* Запятая не должна сопровождаться пробелом, если она используется в открытом общем типе в выражении `typeof`. +* Запятая является частью компонента выравнивания интерполяции строк. Например:`$"{x,3}"`. + +Запятая никогда не должна предшествовать пробелу или появляться в качестве первой лексемы в строке. + +## Как исправить нарушения + +Чтобы исправить нарушение этого правила, убедитесь, что за запятой следует один пробел и ей не предшествует никакой пробел. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.SpacingRules", "SA1001:CommasMustBeSpacedCorrectly", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1001 // CommasMustBeSpacedCorrectly +#pragma warning restore SA1001 // CommasMustBeSpacedCorrectly +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1002.md b/documentation/ru-ru/SA1002.md new file mode 100644 index 000000000..17f7fc27c --- /dev/null +++ b/documentation/ru-ru/SA1002.md @@ -0,0 +1,46 @@ +## SA1002 + + + + + + + + + + + + + + +
TypeNameSA1002SemicolonsMustBeSpacedCorrectly
CheckIdSA1002
КатегорияПравила расстановки пробелов
+ +## Причина + +В файле кода на языке C# неправильно задан пробел вокруг точки с запятой. + +## Описание правила + +Нарушение этого правила происходит при неправильном интервале между точками с запятой. + +За точкой с запятой всегда должен следовать одинарный пробел, за исключением следующих случаев: + +* Точка с запятой является последним символом в строке. +* За точкой с запятой следует закрывающая скобка. + +Точка с запятой никогда не должна предшествовать пробелу, если только она не является первым символом в строке. + +## Как исправить нарушения + +Чтобы исправить нарушение этого правила, убедитесь, что за точкой с запятой следует один пробел и ей не предшествует никакой пробел. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.SpacingRules", "SA1002:SemicolonsMustBeSpacedCorrectly", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1002 // SemicolonsMustBeSpacedCorrectly +#pragma warning restore SA1002 // SemicolonsMustBeSpacedCorrectly +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1003.md b/documentation/ru-ru/SA1003.md new file mode 100644 index 000000000..0f71d582c --- /dev/null +++ b/documentation/ru-ru/SA1003.md @@ -0,0 +1,62 @@ +## SA1003 + + + + + + + + + + + + + + +
TypeNameSA1003SymbolsMustBeSpacedCorrectly
CheckIdSA1003
КатегорияПравила расстановки пробелов
+ +## Причина + +В файле кода на языке C# неверно задан интервал между символами операторов. + +## Описание правила + +Нарушение этого правила происходит, когда интервал вокруг символа оператора неверен. + +Следующие типы символов операторов должны быть окружены одинарным пробелом с обеих сторон: двоеточия, арифметические +операторы, операторы присваивания, условные операторы, логические операторы, реляционные операторы, операторы сдвига и +лямбда-операторы. Например: + +```csharp +int x = 4 + y; +``` + +В отличие от них, унарные операторы должны предваряться одним пробелом, но никогда не должны сопровождаться пробелами. Например: + +```csharp +bool x = !value; +``` + +Исключение составляют случаи, когда символу предшествует или за ним следует скобка или круглые скобки, в этом случае между символом и скобкой не должно быть пробела. +не должно быть пробела между символом и скобкой. Например: + +```csharp +if (!value) +{ +} +``` + +## Как исправить нарушения + +Чтобы исправить нарушение этого правила, убедитесь, что интервал вокруг символа соответствует правилу, описанному выше. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.SpacingRules", "SA1003:SymbolsMustBeSpacedCorrectly", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1003 // SymbolsMustBeSpacedCorrectly +#pragma warning restore SA1003 // SymbolsMustBeSpacedCorrectly +``` diff --git a/documentation/ru-ru/SA1004.md b/documentation/ru-ru/SA1004.md new file mode 100644 index 000000000..58c63bbf8 --- /dev/null +++ b/documentation/ru-ru/SA1004.md @@ -0,0 +1,63 @@ +## SA1004 + + + + + + + + + + + + + + +
TypeNameSA1004DocumentationLinesMustBeginWithSingleSpace
CheckIdSA1004
КатегорияПравила расстановки пробелов
+ +## Причина + +Строка в заголовке документации над элементом C# не начинается с одинарного пробела. + +## Описание правила + +Нарушение этого правила происходит, когда строка в заголовке документации не начинается с одинарного пробела. Например: + +```csharp +/// +///Текст резюме. +/// +/// Корень документа. +/// Текст заголовка Xml. +private void Method1(int x, int y) +{ +} +``` + +Строки заголовка должны начинаться с одинарного пробела после трех ведущих прямых косых черт: + +```csharp +/// +/// Текст резюме. +/// +/// Корень документа. +/// Текст заголовка Xml. +private void Method1(int x, int y) +{ +} +``` + +## Как исправить нарушения + +Чтобы исправить нарушение этого правила, убедитесь, что строка заголовка начинается с одинарного пробела. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.SpacingRules", "SA1004:DocumentationLinesMustBeginWithSingleSpace", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1004 // DocumentationLinesMustBeginWithSingleSpace +#pragma warning restore SA1004 // DocumentationLinesMustBeginWithSingleSpace +``` diff --git a/documentation/ru-ru/SA1005.md b/documentation/ru-ru/SA1005.md new file mode 100644 index 000000000..4bb7f4564 --- /dev/null +++ b/documentation/ru-ru/SA1005.md @@ -0,0 +1,67 @@ +## SA1005 + + + + + + + + + + + + + + +
TypeNameSA1005SingleLineCommentsMustBeginWithSingleSpace
CheckIdSA1005
КатегорияПравила расстановки пробелов
+ +## Причина + +Однострочный комментарий в файле кода C# не начинается с пробела. + +## Описание правила + +Нарушение этого правила происходит, если однострочный комментарий не начинается с одинарного пробела. Например: + +```csharp +private void Method1() +{ + //Однострочный комментарий. + // Однострочный комментарий. +} +``` + +Комментарии должны начинаться с одинарного пробела после ведущих прямых слэшей: + +```csharp +private void Method1() +{ + // Однострочный комментарий. + // Однострочный комментарий. +} +``` + +Исключением из этого правила является случай, когда комментарий используется для комментирования строки кода. В этом случае пробел можно не ставить, если комментарий начинается с четырех прямых косых черт, чтобы обозначить выводимый код. Например: + +```csharp +private void Method1() +{ + ////int x = 2; + ////return x; +} +``` + +## Как исправить нарушения + +Чтобы исправить нарушение этого правила, убедитесь, что комментарий начинается с одного пробела. Если комментарий используется для комментирования строки кода, убедитесь, что комментарий начинается с четырех прямых косых черт, в этом случае ведущий пробел можно опустить. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.SpacingRules", "SA1005:SingleLineCommentsMustBeginWithSingleSpace", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1005 // SingleLineCommentsMustBeginWithSingleSpace +#pragma warning restore SA1005 // SingleLineCommentsMustBeginWithSingleSpace +``` diff --git a/documentation/ru-ru/SA1006.md b/documentation/ru-ru/SA1006.md new file mode 100644 index 000000000..6cd2b8997 --- /dev/null +++ b/documentation/ru-ru/SA1006.md @@ -0,0 +1,49 @@ +## SA1006 + + + + + + + + + + + + + + +
TypeNameSA1006PreprocessorKeywordsMustNotBePrecededBySpace
CheckIdSA1006
КатегорияПравила расстановки пробелов
+ +## Cause + +Ключевому слову препроцессора C# предшествует пробел. + +## Описание правила + +Нарушение этого правила происходит, когда ключевому слову типа препроцессора в директиве препроцессора предшествует пробел. Например: + +```csharp +# if Debug +``` + +Между открывающим хэш-знаком и ключевым словом типа препроцессора не должно быть пробелов: + +```csharp +#if Debug +``` + +## Как исправить нарушение + +Чтобы исправить нарушение этого правила, убедитесь, что между открывающим хэш-знаком и ключевым словом типа препроцессора нет пробельных символов. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.SpacingRules", "SA1006:PreprocessorKeywordsMustNotBePrecededBySpace", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1006 // PreprocessorKeywordsMustNotBePrecededBySpace +#pragma warning restore SA1006 // PreprocessorKeywordsMustNotBePrecededBySpace +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1007.md b/documentation/ru-ru/SA1007.md new file mode 100644 index 000000000..63672fbba --- /dev/null +++ b/documentation/ru-ru/SA1007.md @@ -0,0 +1,45 @@ +## SA1007 + + + + + + + + + + + + + + +
TypeNameSA1007OperatorKeywordMustBeFollowedBySpace
CheckIdSA1007
КатегорияПравила расстановки пробелов
+ +## Причина + +За ключевым словом operator в методе перегрузки оператора в C# не следует пробел. + +## Описание правила + +Нарушение этого правила происходит, когда за ключевым словом operator в методе перегрузки оператора не следует никакого пробельного символа. За ключевым словом operator всегда должен следовать одинарный пробел. Например: + +```csharp +public MyClass operator +(MyClass a, MyClass b) +{ +} +``` + +## Как исправить нарушения + +Чтобы исправить нарушение этого правила, добавьте один пробел после ключевого слова operator. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.SpacingRules", "SA1007:OperatorKeywordMustBeFollowedBySpace", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1007 // OperatorKeywordMustBeFollowedBySpace +#pragma warning restore SA1007 // OperatorKeywordMustBeFollowedBySpace +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1008.md b/documentation/ru-ru/SA1008.md new file mode 100644 index 000000000..920e76efc --- /dev/null +++ b/documentation/ru-ru/SA1008.md @@ -0,0 +1,41 @@ +## SA1008 + + + + + + + + + + + + + + +
TypeNameSA1008OpeningParenthesisMustBeSpacedCorrectly
CheckIdSA1008
КатегорияПравила расстановки пробелов
+ +## Причина + +Открывающая скобка в операторе C# расставлены неправильно. + +## Описание правила + +Нарушение этого правила происходит, когда открывающая скобка в операторе расставлена неправильно. Перед открывающей скобкой не должно быть пробельных символов, за исключением случаев, когда она является первым символом в строке или когда ей предшествуют определенные ключевые слова C#, такие как if, while или for. Кроме того, перед открывающей скобкой допускается пробел, если она следует за символом оператора в выражении. + +После открывающей скобки не должно быть пробельных символов, если только она не является последним символом в строке. + +## Как исправить нарушение + +Чтобы исправить нарушение этого правила, убедитесь, что интервал вокруг открывающей скобки соответствует правилу, описанному выше. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.SpacingRules", "SA1008:OpeningParenthesisMustBeSpacedCorrectly", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1008 // OpeningParenthesisMustBeSpacedCorrectly +#pragma warning restore SA1008 // OpeningParenthesisMustBeSpacedCorrectly +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1009.md b/documentation/ru-ru/SA1009.md new file mode 100644 index 000000000..2e1fd78a5 --- /dev/null +++ b/documentation/ru-ru/SA1009.md @@ -0,0 +1,43 @@ +## SA1009 + + + + + + + + + + + + + + +
TypeNameSA1009ClosingParenthesisMustBeSpacedCorrectly
CheckIdSA1009
КатегорияПравила расстановки пробелов
+ +## Причина + +Закрывающая скобка в операторе C# расположена неправильно. + +## Описание правила + +Нарушение этого правила происходит, когда закрывающая скобка в операторе расставлена неправильно. + +Закрывающая скобка никогда не должна предшествовать пробельным символам. В большинстве случаев за закрывающей скобкой должен следовать одинарный пробел, за исключением случаев, когда закрывающая скобка находится в конце фрагмента, или когда за закрывающей скобкой следуют определенные типы символов операторов, такие как положительные знаки, отрицательные знаки и двоеточия. + +Если за закрывающей скобкой следует пробел, то следующий символ, не содержащий пробела, не должен быть открывающей или закрывающей скобкой, квадратной скобкой, точкой с запятой или запятой. + +## Как исправить нарушения + +Чтобы исправить нарушение этого правила, убедитесь, что интервал вокруг закрывающей скобки соответствует правилу, описанному выше. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.SpacingRules", "SA1009:ClosingParenthesisMustBeSpacedCorrectly", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1009 // ClosingParenthesisMustBeSpacedCorrectly +#pragma warning restore SA1009 // ClosingParenthesisMustBeSpacedCorrectly +``` diff --git a/documentation/ru-ru/SA1010.md b/documentation/ru-ru/SA1010.md new file mode 100644 index 000000000..fe6f9e48c --- /dev/null +++ b/documentation/ru-ru/SA1010.md @@ -0,0 +1,41 @@ +## SA1010 + + + + + + + + + + + + + + +
TypeNameSA1010OpeningSquareBracketsMustBeSpacedCorrectly
CheckIdSA1010
КатегорияПравила расстановки пробелов
+ +## Причина + +Открывающая квадратная скобка в операторе C# расположена неправильно. + +## Описание правила + +Нарушение этого правила происходит, когда открывающей квадратной скобке в операторе предшествует или следует пробел. + +Открывающей квадратной скобке никогда не должен предшествовать пробел, если только это не первый символ в строке, а за открывающей квадратной скобкой никогда не должен следовать пробел, если только это не последний символ в строке. + +## Как исправить нарушения + +Чтобы исправить нарушение этого правила, убедитесь, что по обе стороны от открывающей квадратной скобки нет пробельных символов. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.SpacingRules", "SA1010:OpeningSquareBracketsMustBeSpacedCorrectly", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1010 // OpeningSquareBracketsMustBeSpacedCorrectly +#pragma warning restore SA1010 // OpeningSquareBracketsMustBeSpacedCorrectly +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1011.md b/documentation/ru-ru/SA1011.md new file mode 100644 index 000000000..6f64fa654 --- /dev/null +++ b/documentation/ru-ru/SA1011.md @@ -0,0 +1,49 @@ +## SA1011 + + + + + + + + + + + + + + +
TypeNameSA1011ClosingSquareBracketsMustBeSpacedCorrectly
CheckIdSA1011
КатегорияПравила расстановки пробелов
+ +## Причина + +Закрывающая квадратная скобка в операторе C# расставлена неправильно. + +## Описание правила + +Нарушение этого правила происходит, когда интервал между закрывающими квадратными скобками не является правильным. + +Закрывающей квадратной скобке никогда не должен предшествовать пробел, если только он не является первым символом в строке. + +За закрывающей квадратной скобкой должен следовать пробел, если только: +* она является последним символом в строке. +* За ней следует закрывающая скобка или открывающая скобка +* За ней следует запятая или точка с запятой +* За ним следует компонент выравнивания интерполяции строки. Например: `$"{x[i]:C}"`. +* За ним следует компонент форматирования строковой интерполяции. Например: `$"{x[i],3}"`. +* За ним следуют некоторые типы символов операторов. + +## Как исправить нарушения + +Чтобы исправить нарушение этого правила, убедитесь, что интервал вокруг закрывающей квадратной скобки соответствует правилу, описанному выше. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.SpacingRules", "SA1011:ClosingSquareBracketsMustBeSpacedCorrectly", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1011 // ClosingSquareBracketsMustBeSpacedCorrectly +#pragma warning restore SA1011 // ClosingSquareBracketsMustBeSpacedCorrectly +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1012.md b/documentation/ru-ru/SA1012.md new file mode 100644 index 000000000..8ae78e46d --- /dev/null +++ b/documentation/ru-ru/SA1012.md @@ -0,0 +1,43 @@ +## SA1012 + + + + + + + + + + + + + + +
TypeNameSA1012OpeningBracesMustBeSpacedCorrectly
CheckIdSA1012
КатегорияПравила расстановки пробелов
+ +## Причина + +Открывающая скобка в элементе C# расположена неправильно. + +## Описание правила + +Нарушение этого правила происходит, когда расстояние между символами вокруг открывающей скобки неверно. + +Открывающей скобке всегда должен предшествовать одинарный пробел, если только она не является первым символом в строке, или если ей не предшествует открывающая скобка, в этом случае между скобкой и скобкой не должно быть пробела. + +За открывающей скобкой всегда должен следовать одинарный пробел, если только она не является последним символом в строке. + +## Как исправить нарушения + +Чтобы исправить нарушение этого правила, убедитесь, что интервал вокруг открывающей скобки соответствует правилу, описанному выше. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.SpacingRules", "SA1012:OpeningBracesMustBeSpacedCorrectly", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1012 // OpeningBracesMustBeSpacedCorrectly +#pragma warning restore SA1012 // OpeningBracesMustBeSpacedCorrectly +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1013.md b/documentation/ru-ru/SA1013.md new file mode 100644 index 000000000..139802ad6 --- /dev/null +++ b/documentation/ru-ru/SA1013.md @@ -0,0 +1,43 @@ +## SA1013 + + + + + + + + + + + + + + +
TypeNameSA1013ClosingBracesMustBeSpacedCorrectly
CheckIdSA1013
КатегорияПравила расстановки пробелов
+ +## Причина + +Закрывающая скобка в элементе C# расположена неправильно. + +## Описание правила + +Нарушение этого правила происходит, когда расстояние между символами вокруг закрывающей скобки неверно. + +За закрывающей скобкой всегда должен следовать одинарный пробел, если только она не является последним символом в строке, или если за ней не следует закрывающая скобка, запятая или точка с запятой. + +Перед закрывающей скобкой всегда должен стоять пробел, если только она не является первым символом в строке. + +## Как исправить нарушения + +Чтобы исправить нарушение этого правила, убедитесь, что интервал вокруг закрывающей скобки соответствует правилу, описанному выше. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.SpacingRules", "SA1013:ClosingBracesMustBeSpacedCorrectly", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1013 // ClosingBracesMustBeSpacedCorrectly +#pragma warning restore SA1013 // ClosingBracesMustBeSpacedCorrectly +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1014.md b/documentation/ru-ru/SA1014.md new file mode 100644 index 000000000..9699c34c5 --- /dev/null +++ b/documentation/ru-ru/SA1014.md @@ -0,0 +1,41 @@ +## SA1014 + + + + + + + + + + + + + + +
TypeNameSA1014OpeningGenericBracketsMustBeSpacedCorrectly
CheckIdSA1014
КатегорияПравила расстановки пробелов
+ +## Причина + +Открывающая скобка обобщенного типа в элементе C# расположена неправильно. + +## Описание правила + +Нарушение этого правила происходит, когда интервал между открывающими скобками обобщенного типа не является правильным. + +Открывающейся скобке обобщенного типа никогда не должен предшествовать или следовать пробел, если только скобка не является первым или последним символом в строке. + +## Как исправить нарушение + +Чтобы исправить нарушение этого правила, убедитесь, что по обе стороны от открывающейся скобки обобщенного типа нет пробельных символов. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.SpacingRules", "SA1014:OpeningGenericBracketsMustBeSpacedCorrectly", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1014 // OpeningGenericBracketsMustBeSpacedCorrectly +#pragma warning restore SA1014 // OpeningGenericBracketsMustBeSpacedCorrectly +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1015.md b/documentation/ru-ru/SA1015.md new file mode 100644 index 000000000..711199812 --- /dev/null +++ b/documentation/ru-ru/SA1015.md @@ -0,0 +1,41 @@ +## SA1015 + + + + + + + + + + + + + + +
TypeNameSA1015ClosingGenericBracketsMustBeSpacedCorrectly
CheckIdSA1015
КатегорияПравила расстановки пробелов
+ +## Причина + +Закрывающая скобка обобщенного типа в элементе C# расположена неправильно. + +## Описание правила + +Нарушение этого правила происходит, когда интервал между закрывающими скобками обобщенного типа не является правильным. + +Закрывающейся скобке обобщенного типа никогда не должен предшествовать пробел, если только скобка не является первым символом в строке. За закрывающейся общей скобкой должна следовать открытая скобка, закрытая скобка, закрывающаяся скобка обобщенного типа, нулевой символ, конец строки или один пробел (но не пробел и открытая скобка). + +## Как исправить нарушения + +Чтобы исправить нарушение этого правила, убедитесь, что пробельные символы вокруг закрывающейся скобки обобщенного типа расставлены правильно. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.SpacingRules", "SA1015:ClosingGenericBracketsMustBeSpacedCorrectly", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1015 // ClosingGenericBracketsMustBeSpacedCorrectly +#pragma warning restore SA1015 // ClosingGenericBracketsMustBeSpacedCorrectly +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1016.md b/documentation/ru-ru/SA1016.md new file mode 100644 index 000000000..cf24a7063 --- /dev/null +++ b/documentation/ru-ru/SA1016.md @@ -0,0 +1,41 @@ +## SA1016 + + + + + + + + + + + + + + +
TypeNameSA1016OpeningAttributeBracketsMustBeSpacedCorrectly
CheckIdSA1016
КатегорияПравила расстановки пробелов
+ +## Причина + +Открывающая скобка атрибута в элементе C# расположена с неправильно. + +## Описание правила + +Нарушение этого правила происходит, когда расстановка пробелов вокруг открывающей скобки атрибута не является корректной. + +За открывающей скобкой атрибута никогда не должно следовать пробельное пространство, если только скобка не является последним символом в строке. + +## Как исправить нарушение + +Чтобы исправить нарушение этого правила, убедитесь, что после открывающей скобки атрибута нет пробельных символов. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.SpacingRules", "SA1016:OpeningAttributeBracketsMustBeSpacedCorrectly", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1016 // OpeningAttributeBracketsMustBeSpacedCorrectly +#pragma warning restore SA1016 // OpeningAttributeBracketsMustBeSpacedCorrectly +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1017.md b/documentation/ru-ru/SA1017.md new file mode 100644 index 000000000..cad759e8f --- /dev/null +++ b/documentation/ru-ru/SA1017.md @@ -0,0 +1,41 @@ +## SA1017 + + + + + + + + + + + + + + +
TypeNameSA1017ClosingAttributeBracketsMustBeSpacedCorrectly
CheckIdSA1017
КатегорияПравила расстановки пробелов
+ +## Причина + +Закрывающая скобка атрибута в элементе C# расположена с неправильно. + +## Описание правила + +Нарушение этого правила происходит, когда расстановка пробелов вокруг закрывающей скобки атрибута не является корректной. + +Перед закрывающей скобкой атрибута никогда не должно быть пробельного символа, если только скобка не является первым символом в строке. + +## Как исправить нарушение + +Чтобы исправить нарушение этого правила, убедитесь, что перед закрывающей скобкой атрибута нет пробельного символа. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.SpacingRules", "SA1017:ClosingAttributeBracketsMustBeSpacedCorrectly", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1017 // ClosingAttributeBracketsMustBeSpacedCorrectly +#pragma warning restore SA1017 // ClosingAttributeBracketsMustBeSpacedCorrectly +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1018.md b/documentation/ru-ru/SA1018.md new file mode 100644 index 000000000..d0eb56d96 --- /dev/null +++ b/documentation/ru-ru/SA1018.md @@ -0,0 +1,41 @@ +## SA1018 + + + + + + + + + + + + + + +
TypeNameSA1018NullableTypeSymbolsMustNotBePrecededBySpace
CheckIdSA1018
КатегорияПравила расстановки пробелов
+ +## Причина + +Символ nullable типа в элементе C# расположен неправильно. + +## Описание правила + +Нарушение этого правила происходит, когда пробел вокруг символа nullable типа не является правильным. + +Символ nullable типа никогда не должен предшествовать пробельным символам, если только символ не является первым символом в строке. + +## Как исправить нарушение + +Чтобы исправить нарушение этого правила, убедитесь, что перед символом nullable типа нет пробельных символов. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.SpacingRules", "SA1018:NullableTypeSymbolsMustNotBePrecededBySpace", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1018 // NullableTypeSymbolsMustNotBePrecededBySpace +#pragma warning restore SA1018 // NullableTypeSymbolsMustNotBePrecededBySpace +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1019.md b/documentation/ru-ru/SA1019.md new file mode 100644 index 000000000..3fc0dadcc --- /dev/null +++ b/documentation/ru-ru/SA1019.md @@ -0,0 +1,39 @@ +## SA1019 + + + + + + + + + + + + + + +
TypeNameSA1019MemberAccessSymbolsMustBeSpacedCorrectly
CheckIdSA1019
КатегорияПравила расстановки пробелов
+ +## Причина + +В файле кода C# неверно задан пробел вокруг символа доступа к члену. + +## Описание правила + +Нарушение этого правила происходит, если пробелы вокруг символа доступа к члену расположены неправильно. Символ доступа к члену не должен иметь пробельных символов по обе стороны, если только он не является первым символом в строке. + +## Как исправить нарушение + +Чтобы исправить нарушение этого правила, убедитесь, что символ доступа к члену не окружен пробелами. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.SpacingRules", "SA1019:MemberAccessSymbolsMustBeSpacedCorrectly", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1019 // MemberAccessSymbolsMustBeSpacedCorrectly +#pragma warning restore SA1019 // MemberAccessSymbolsMustBeSpacedCorrectly +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1020.md b/documentation/ru-ru/SA1020.md new file mode 100644 index 000000000..4f1a3f5c2 --- /dev/null +++ b/documentation/ru-ru/SA1020.md @@ -0,0 +1,41 @@ +## SA1020 + + + + + + + + + + + + + + +
TypeNameSA1020IncrementDecrementSymbolsMustBeSpacedCorrectly
CheckIdSA1020
КатегорияПравила расстановки пробелов
+ +## Причина + +Символ инкремента или декремента в элементе C# расположен неправильно. + +## Описание правила + +Нарушение этого правила происходит, когда пробелы вокруг символа инкремента или декремента расположены неправильно. + +Между символом инкремента или декремента и увеличиваемым или уменьшаемым элементом не должно быть пробелов. + +## Как исправить нарушения + +Чтобы исправить нарушение этого правила, убедитесь, что между символом инкремента или декремента и увеличиваемым или уменьшаемым элементом нет пробельных символов. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.SpacingRules", "SA1020:IncrementDecrementSymbolsMustBeSpacedCorrectly", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1020 // IncrementDecrementSymbolsMustBeSpacedCorrectly +#pragma warning restore SA1020 // IncrementDecrementSymbolsMustBeSpacedCorrectly +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1021.md b/documentation/ru-ru/SA1021.md new file mode 100644 index 000000000..4ca675dbc --- /dev/null +++ b/documentation/ru-ru/SA1021.md @@ -0,0 +1,43 @@ +## SA1021 + + + + + + + + + + + + + + +
TypeNameSA1021NegativeSignsMustBeSpacedCorrectly
CheckIdSA1021
КатегорияПравила расстановки пробелов
+ +## Причина + +Отрицательный знак в элементе C# расположен неправильно. + +## Описание правила + +Нарушение этого правила происходит, когда пробелы вокруг отрицательного знака расставлены неправильно. + +Перед знаком минус всегда должен стоять одинарный пробел, если только он не стоит после открывающей квадратной скобки, круглой скобки, скобки интерполированной строки, является первым символом в строке или частью компонента выравнивания интерполяции строки. + +За знаком минус никогда не должно следовать пробельное пространство, и он никогда не должен быть последним символом в строке. + +## Как исправить нарушения + +Чтобы исправить нарушение этого правила, убедитесь, что пробелы вокруг отрицательного знака соответствуют правилу, описанному выше. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.SpacingRules", "SA1021:NegativeSignsMustBeSpacedCorrectly", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1021 // NegativeSignsMustBeSpacedCorrectly +#pragma warning restore SA1021 // NegativeSignsMustBeSpacedCorrectly +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1022.md b/documentation/ru-ru/SA1022.md new file mode 100644 index 000000000..1b75041e6 --- /dev/null +++ b/documentation/ru-ru/SA1022.md @@ -0,0 +1,43 @@ +## SA1022 + + + + + + + + + + + + + + +
TypeNameSA1022PositiveSignsMustBeSpacedCorrectly
CheckIdSA1022
КатегорияПравила расстановки пробелов
+ +## Причина + +Положительный знак в элементе C# расположен неправильно. + +## Описание правила + +Нарушение этого правила происходит, когда пробелы вокруг положительного знака расставлены неправильно. + +Положительному знаку всегда должен предшествовать одинарный пробел, если только он не стоит после открывающей квадратной скобки, круглой скобки, скобки интерполированной строки, является первым символом в строке или частью компонента выравнивания интерполяции строки. + +За знаком плюс никогда не должно следовать пробельное пространство, и он никогда не должен быть последним символом в строке. + +## Как исправить нарушения + +Чтобы исправить нарушение этого правила, убедитесь, что пробелы вокруг положительного знака соответствуют правилу, описанному выше. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.SpacingRules", "SA1022:PositiveSignsMustBeSpacedCorrectly", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1022 // PositiveSignsMustBeSpacedCorrectly +#pragma warning restore SA1022 // PositiveSignsMustBeSpacedCorrectly +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1023.md b/documentation/ru-ru/SA1023.md new file mode 100644 index 000000000..dd262ae48 --- /dev/null +++ b/documentation/ru-ru/SA1023.md @@ -0,0 +1,51 @@ +## SA1023 + + + + + + + + + + + + + + +
TypeNameSA1023DereferenceAndAccessOfMustBeSpacedCorrectly
CheckIdSA1023
КатегорияПравила расстановки пробелов
+ +## Причина + +Символ разыменования или символ доступа к элементу C# расположен неправильно. + +## Описание правила + +Нарушение этого правила происходит, когда пробелы вокруг символа разыменования или символа доступа расположены неправильно. + +Пробелы между символами зависит от того, используется ли этот символ в объявлении типа. Если да, то за символом всегда должен следовать одинарный пробел, если только он не является последним символом в строке, или за ним не следует открывающая квадратная скобка или круглые скобки. Кроме того, символ не должен предшествовать пробельным символам и не должен быть первым символом в строке. Пример правильно расположенного символа отсылки, используемого в объявлении типа, следующий: + +```csharp +object* x = null; +``` + +Когда символ разыменования или доступа используется вне объявления типа, действует противоположное правило. В этом случае перед символом всегда должен стоять пробел, если только он не является первым символом в строке или ему не предшествует открывающая квадратная скобка, скобка или символ того же типа, т. е. знак равенства. За символом не должно следовать пробельное пространство, и он не должен быть последним символом в строке. Например: + +```csharp +y = *x; +``` + +## Как исправить нарушения + +Чтобы устранить нарушение этого правила, убедитесь, что пробелы вокруг символов разыменования или адресации соответствуют правилу, описанному выше. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.SpacingRules", "SA1023:DereferenceAndAccessOfMustBeSpacedCorrectly", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1023 // DereferenceAndAccessOfMustBeSpacedCorrectly +#pragma warning restore SA1023 // DereferenceAndAccessOfMustBeSpacedCorrectly +``` diff --git a/documentation/ru-ru/SA1024.md b/documentation/ru-ru/SA1024.md new file mode 100644 index 000000000..20052c722 --- /dev/null +++ b/documentation/ru-ru/SA1024.md @@ -0,0 +1,73 @@ +## SA1024 + + + + + + + + + + + + + + +
TypeNameSA1024ColonsMustBeSpacedCorrectly
CheckIdSA1024
КатегорияПравила расстановки пробелов
+ +## Причина + +Двоеточие в элементе C# расставлено неправильно. + +## Описание правила + +Нарушение этого правила происходит при неправильном пробеле вокруг двоеточия. + +Пробелы вокруг двоеточия зависит от типа двоеточия и того, как оно используется в коде. Двоеточие, появляющееся в объявлении элемента, всегда должно иметь одинарный пробел с обеих сторон, если только оно не является первым или последним символом в строке. Например, все двоеточия ниже следуют этому правилу: + +```csharp +public class Class2 : Class1 where T : MyType +{ + public Class2(int x) : base(x) + { + } +} +``` + +Когда двоеточие стоит в конце метки или оператора case, за ним всегда должен следовать пробел или последний символ в строке, но никогда не должен предшествовать пробел. Например: + +```csharp +_label: +switch (x) +{ + case 2: + return x; +} +``` + +Двоеточие, которое появляется как часть компонента форматирования строковой интерполяции, не должно содержать ведущих пробельных символов. Например: + +```csharp +var s = $"{x:N}"; +``` + +Наконец, когда двоеточие используется внутри условного оператора, оно всегда должно содержать один пробел с обеих сторон, если только двоеточие не является первым или последним символом в строке. Например: + +```csharp +int x = y ? 2 : 3; +``` + +## Как исправить нарушения + +Чтобы исправить нарушение этого правила, убедитесь, что пробелы вокруг двоеточия соответствуют правилу, описанному выше. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.SpacingRules", "SA1024:ColonsMustBeSpacedCorrectly", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1024 // ColonsMustBeSpacedCorrectly +#pragma warning restore SA1024 // ColonsMustBeSpacedCorrectly +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1025.md b/documentation/ru-ru/SA1025.md new file mode 100644 index 000000000..fe094d795 --- /dev/null +++ b/documentation/ru-ru/SA1025.md @@ -0,0 +1,40 @@ +## SA1025 + + + + + + + + + + + + + + +
TypeNameSA1025CodeMustNotContainMultipleWhitespaceInARow
CheckIdSA1025
КатегорияПравила расстановки пробелов
+ +## Причина + +Код содержит несколько пробельных символов в строке. + +## Описание правила + +Нарушение этого правила происходит всякий раз, когда код содержит несколько пробельных символов в строке, если только эти символы не стоят в начале или конце строки кода или после запятой или точки с запятой. +если эти символы не стоят в начале или конце строки кода, а также после запятой или точки с запятой. + +## Как исправить нарушение + +Чтобы исправить нарушение этого правила, удалите лишние пробельные символы и оставьте только один пробел. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.SpacingRules", "SA1025:CodeMustNotContainMultipleWhitespaceInARow", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1025 // CodeMustNotContainMultipleWhitespaceInARow +#pragma warning restore SA1025 // CodeMustNotContainMultipleWhitespaceInARow +``` diff --git a/documentation/ru-ru/SA1026.md b/documentation/ru-ru/SA1026.md new file mode 100644 index 000000000..eb94e7d49 --- /dev/null +++ b/documentation/ru-ru/SA1026.md @@ -0,0 +1,41 @@ +# SA1026 + + + + + . + + + + + + + + + +
TypeNameSA1026CodeMustNotContainSpaceAfterNewKeywordInImplicitlyTypedArrayAllocation
CheckIdSA1026
КатегорияПравила расстановки пробелов
+ +## Причина + +Неявно типизированное выделение массива в файле кода C# располагается неправильно. + +## Описание правила + +Нарушение этого правила происходит всякий раз, когда код содержит неявно типизированное выделение массива, которое расположено с неправильной расстановкой пробелов. В неявно типизированном выделении массива между ключевым словом `new` или `stackalloc` и открывающей скобкой массива не должно быть пробела или пустой строки. Например: + +```csharp +var a = new[] { 1, 10, 100, 1000 }; +Span a = stackalloc[] { 1, 10, 100, 1000 }; +``` + +## Как исправить нарушения + +Чтобы исправить нарушение этого правила, удалите все пробелы между ключевым словом `new` или `stackalloc` и открывающей скобкой массива. + +## Как подавить нарушения + +```csharp +#pragma warning disable SA1026 // Код не должен содержать пробел после ключевого слова new или stackalloc при неявно типизированном выделении массива +var ints = new [] { 1, 2, 3 }; +#pragma warning restore SA1026 // Код не должен содержать пробелов после ключевого слова new или stackalloc при неявно типизированном выделении массива +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1027.md b/documentation/ru-ru/SA1027.md new file mode 100644 index 000000000..f68c24e83 --- /dev/null +++ b/documentation/ru-ru/SA1027.md @@ -0,0 +1,71 @@ +## SA1027 + + + + + + + + + + + + + + +
TypeNameSA1027UseTabsCorrectly
CheckIdSA1027
КатегорияПравила расстановки пробелов
+ +## Причина + +Код содержит символы табуляции или пробела, которые не соответствуют текущим настройкам проекта. + +## Описание правила + +Нарушение этого правила происходит всякий раз, когда код содержит символ табуляции или пробела, не соответствующий +текущими настройками проекта. По умолчанию **StyleCop Analyzers** не ожидает, что код будет содержать символы табуляции. См. раздел +[Конфигурация](Configuration.md) для получения информации об изменении этого поведения посредством файла **stylecop.json**. + +### Поведение по умолчанию + +Поведение по умолчанию соответствует поведению StyleCop Classic, которое было основано на следующих соображениях. + + + +> Табуляции не следует использовать в коде C#, поскольку длина символа табуляции может меняться в зависимости от редактора, используемого для просмотра кода. Это может привести к тому, что интервалы и индексация кода будут отличаться от первоначального замысла разработчика, и в некоторых случаях код может стать трудночитаемым. +> +> По этим причинам не следует использовать табуляцию, а каждый уровень отступа должен состоять из четырех пробелов. Это гарантирует, что код будет выглядеть одинаково независимо от того, в каком редакторе он просматривается. + +### Исключения + +Чтобы избежать непреднамеренного изменения поведения кода, это нарушение никогда не сообщается в следующих сценариях. + +* Строковые литералы, включая интерполированные строковые литералы в C# 6 + +* Литералы символов + +* Закомментированный код (комментарии строк, начинающиеся с `////`). Это гарантирует, что литералы в закомментированном коде не будут изменены. + +* Отключенный текст + + ```csharp + #if DEBUG + Это игнорируется в конфигурациях релиза + #else + Это игнорируется в конфигурациях отладки + #endif + ``` + +## Как исправить нарушения + +Чтобы исправить нарушение этого правила, используйте пробелы или табуляции для отступа строк в соответствии с настройками проекта и избегайте использования табуляций помимо отступа. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.SpacingRules", "SA1027:TabsMustNotBeUsed", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1027 // TabsMustNotBeUsed +#pragma warning restore SA1027 // TabsMustNotBeUsed +``` diff --git a/documentation/ru-ru/SA1028.md b/documentation/ru-ru/SA1028.md new file mode 100644 index 000000000..4826896a8 --- /dev/null +++ b/documentation/ru-ru/SA1028.md @@ -0,0 +1,54 @@ +# SA1028 + + + + + + + + + + + + + + +
TypeNameSA1028CodeMustNotContainTrailingWhitespace
CheckIdSA1028
КатегорияПравила расстановки пробелов
+ +:memo: Это правило является новым для анализаторов StyleCop, и его не было в StyleCop Classic. + +## Причина + +Строка кода заканчивается пробелом, табуляцией или другими пробельными символами перед символом (символами) конца строки. + +## Описание правила + +Нарушение этого правила происходит, когда строка кода заканчивается любым пробельным символом, кроме символа (символов) конца строки. Лишние пробельные символы могут отображаться в редакторах с видимыми пробельными символами или вызывать ненужную возню с кодом, когда разработчики форматируют документ таким образом, что пробельные символы в конце строки удаляются позже. Некоторые инструменты сравнения файлов (diff) даже выделяют пробельные символы, чтобы побудить разработчиков обрезать их. + +### Детальное поведение + +Язык C# содержит несколько конструкций, которые охватывают несколько строк кода. В следующей таблице описано поведение этого правила по отношению к каждой из этих конструкций. + + +| Конструкция | Анализ включен | +| --- | --- | +| "Обычный" код | ✔ | ✔ | +| Строчные комментарии (начинающиеся с `// ...`) | ✔ | +| Внутриблочные комментарии (`/* ... */`) | ✔ | +| Однострочные комментарии к документации (`/// ...`) | ✔ | +| Многострочные комментарии к документации (`/** ... */`) | ✔ | +| Директивы препроцессора (`#if`, `#pragma`, `#region` и т.д.) | ✔ | +| Дословные строковые литералы (`@""`) | | ✔ | +| Отключенный код (текст, расположенный внутри блока `#if`, `#elif` или `#else`, который не является активным)| | + +## Как исправить нарушения + +Чтобы исправить это нарушение, удалите все лишние пробельные символы в конце строки. + +## Как подавить нарушения + +```csharp +#pragma warning disable SA1028 // Код не должен содержать пробельные символы в конце строки +SomeMethodWithSpaceAfterTheSemicolon(); +#pragma warning restore SA1028 // Код не должен содержать пробельные символы в конце строки +``` diff --git a/documentation/ru-ru/SA1100.md b/documentation/ru-ru/SA1100.md new file mode 100644 index 000000000..eb9367faa --- /dev/null +++ b/documentation/ru-ru/SA1100.md @@ -0,0 +1,64 @@ +## SA1100 + + + + + . + + + + + + + + + +
TypeNameSA1100DoNotPrefixCallsWithBaseUnlessLocalImplementationExists
CheckIdSA1100
КатегорияПравила удобочитаемости
+ +## Причина + +Вызов члена из наследуемого класса начинается с `base.`, а локальный класс не содержит переопределения или реализации этого члена. + +## Описание правила + +Нарушение этого правила происходит всякий раз, когда код содержит вызов члена из базового класса с префиксом `base.`, а локальная реализация этого члена отсутствует. Например: + +```csharp +string name = base.JoinName("John", "Doe"); +``` + +Это правило введено для предотвращения потенциального источника ошибок. Рассмотрим базовый класс, который содержит следующий виртуальный метод: + +```csharp +public virtual string JoinName(string first, string last) +{ +} +``` + +Другой класс наследует от этого базового класса, но не предоставляет локального переопределения этого метода. Где-то внутри этого класса метод базового класса вызывается с помощью `base.JoinName(...)`. Это работает, как и ожидалось. Позже кто-то добавляет в класс локальное переопределение этого метода: + +```csharp +public override string JoinName(string first, string last) +{ + return "Bob"; +} +``` + +В этот момент локальный вызов `base.JoinName(...)`, скорее всего, вносит ошибку в код. Этот вызов всегда будет вызывать метод базового класса и приведет к тому, что локальное переопределение будет проигнорировано. + +По этой причине вызовы членов базового класса не должны начинаться с `base.`, если только не реализовано локальное переопределение, и разработчик не хочет специально вызвать член базового класса. Если локального переопределения члена базового класса нет, вызов должен иметь префикс `this.`, а не `base.`. + +## Как исправить нарушения + +Чтобы исправить нарушение этого правила, измените префикс `base.` на `this.`. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.ReadabilityRules", "SA1100:DoNotPrefixCallsWithBaseUnlessLocalImplementationExists", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1100 // DoNotPrefixCallsWithBaseUnlessLocalImplementationExists +#pragma warning restore SA1100 // DoNotPrefixCallsWithBaseUnlessLocalImplementationExists +``` diff --git a/documentation/ru-ru/SA1101.md b/documentation/ru-ru/SA1101.md new file mode 100644 index 000000000..fa78bd218 --- /dev/null +++ b/documentation/ru-ru/SA1101.md @@ -0,0 +1,43 @@ +## SA1101 + + + + + . + + + + + + + + + +
TypeNameSA1101PrefixLocalCallsWithThis
CheckIdSA1101
КатегорияПравила удобочитаемости
+ +## Причина + +Вызов экземпляра-члена локального класса или базового класса не имеет префикса `this.` в файле кода C#. + +## Описание правила + +Нарушение этого правила происходит всякий раз, когда код содержит обращение к экземпляру-члену локального или базового класса, который не имеет префикса 'this.'. Исключением из этого правила является случай, когда существует локальное переопределение члена базового класса, и код намерен вызвать член базового класса напрямую, минуя локальное переопределение. В этом случае вызов может быть снабжен префиксом 'base.', а не 'this.'. + +По умолчанию StyleCop запрещает использовать подчеркивание или *m_* для обозначения локальных полей класса, отдавая предпочтение префиксу 'this.'. Преимущество использования 'this.' в том, что он одинаково применяется ко всем типам элементов, включая методы, свойства и т. д., а не только к полям, делая все обращения к членам класса мгновенно узнаваемыми, независимо от того, в каком редакторе просматривается код. Еще одно преимущество заключается в том, что это создает быстрое, узнаваемое различие между членами экземпляра и статическими членами, которые не имеют префикса. + +Последнее преимущество использования префикса 'this.' заключается в том, что при вводе *this.* Visual Studio покажет всплывающее окно IntelliSense, что позволит разработчику быстро и легко выбрать член класса для вызова. + +## Как исправить нарушения + +Чтобы исправить нарушение этого правила, вставьте префикс 'this.' перед обращением к члену класса. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.ReadabilityRules", "SA1101:PrefixLocalCallsWithThis", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1101 // Префикс локальных вызовов должен быть с this +#pragma warning restore SA1101 // Префикс локальных вызовов должен быть с this +``` diff --git a/documentation/ru-ru/SA1102.md b/documentation/ru-ru/SA1102.md new file mode 100644 index 000000000..637695d42 --- /dev/null +++ b/documentation/ru-ru/SA1102.md @@ -0,0 +1,59 @@ +# SA1102 + + + + + . + + + + + + + + + + + + + +
TypeNameSA110xQueryClauses
CheckIdSA1102
+ +## + + C# , , . + +## + + , , , . : +```c# + object x = from num in numbers + + select num; +``` + + : +```c# + object x = from num in numbers select num; +``` +: +```c# + object x = + from num + in numbers + select num; +``` + +## + + , , , , . + +## + +```c# +#pragma warning disable SA1102 // + object x = from num in numbers + + select num; +#pragma warning restore SA1102 // +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1103.md b/documentation/ru-ru/SA1103.md new file mode 100644 index 000000000..26ff61d7c --- /dev/null +++ b/documentation/ru-ru/SA1103.md @@ -0,0 +1,56 @@ +# SA1103 + + + + + . + + + + + + + + + + + + + +
TypeNameSA110xQueryClauses
CheckIdSA1103
+ +## + + C# , . + +## + + , . : +```c# + object x = from num in numbers + select num; +``` + + : +```c# + object x = from num in numbers select num; +``` +: +```c# + object x = + from num in numbers + select num; +``` + +## + + , , , . + +## + +```c# +#pragma warning disable SA1103 // + object x = from num in numbers + select num; +#pragma warning restore SA1103 // +``` diff --git a/documentation/ru-ru/SA1104.md b/documentation/ru-ru/SA1104.md new file mode 100644 index 000000000..5900a3f52 --- /dev/null +++ b/documentation/ru-ru/SA1104.md @@ -0,0 +1,64 @@ +# SA1104 + + + + + . + + + + + + + + + + + + + +
,
TypeNameSA110xQueryClauses
CheckIdSA1104
+ +## + + C# , , . + +## + + , , , . : +```c# + var elementNames = + from element in GetElements + ( + 12, + 45 + ) select element.Name; +``` + + : +```c# + var elementNames = + from element in GetElements + ( + 12, + 45 + ) + select element.Name; +``` + +## + + , , . + +## + +```c# +#pragma warning disable SA1104 // , + var elementNames = + from element in GetElements + ( + 12, + 45 + ) select element.Name; +#pragma warning restore SA1104 // , +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1105.md b/documentation/ru-ru/SA1105.md new file mode 100644 index 000000000..616d18e80 --- /dev/null +++ b/documentation/ru-ru/SA1105.md @@ -0,0 +1,61 @@ +# SA1105 + + + + + . + + + + + + + + + + + + + +
, ,
TypeNameSA110xQueryClauses
CheckIdSA1105
+ +## + + C# . + +## + + , , . : +```c# + var elementDescriptions = + from element in elements select GenerateElementDescription + ( + element + ); +``` + + : +```c# + var elementDescriptions = + from element in elements + select GenerateElementDescription + ( + element + ); +``` + +## + + , , . + +## + +```c# +#pragma warning disable SA1105 // , , + var elementDescriptions = + from element in elements select GenerateElementDescription + ( + element + ); +#pragma warning restore SA1105 // , , +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1106.md b/documentation/ru-ru/SA1106.md new file mode 100644 index 000000000..9f17c456f --- /dev/null +++ b/documentation/ru-ru/SA1106.md @@ -0,0 +1,39 @@ +## SA1106 + + + + + + + + + + + + + + +
TypeNameSA1106CodeMustNotContainEmptyStatements
CheckIdSA1106
КатегорияПравила удобочитаемости
+ +## Причина + +Код на C# содержит лишнюю точку с запятой. + +## Описание правила + +Нарушение этого правила происходит, когда код содержит лишнюю точку с запятой. Синтаксически это приводит к появлению лишнего пустого утверждения в коде. + +## Как исправить нарушение + +Чтобы исправить нарушение этого правила, удалите ненужную точку с запятой. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.ReadabilityRules", "SA1106:CodeMustNotContainEmptyStatements", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1106 // Код не должен содержать пустых операторов +#pragma warning restore SA1106 // Код не должен содержать пустых операторов +``` diff --git a/documentation/ru-ru/SA1107.md b/documentation/ru-ru/SA1107.md new file mode 100644 index 000000000..ca942bcd6 --- /dev/null +++ b/documentation/ru-ru/SA1107.md @@ -0,0 +1,39 @@ +## SA1107 + + + + + . + + + + + + + + + +
TypeNameSA1107CodeMustNotContainMultipleStatementsOnOneLine
CheckIdSA1107
КатегорияПравила удобочитаемости
+ +## Причина + +Код C# содержит более одного оператора в одной строке. + +## Описание правила + +Нарушение этого правила происходит, когда код содержит более одного оператора на одной строке. Каждый оператор должен начинаться с новой строки. + +## Как исправить нарушение + +Чтобы исправить нарушение этого правила, перенесите каждый оператор в отдельную строку. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.ReadabilityRules", "SA1107:CodeMustNotContainMultipleStatementsOnOneLine", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1107 // CodeMustNotContainMultipleStatementsOnOneLine +#pragma warning restore SA1107 // CodeMustNotContainMultipleStatementsOnOneLine +``` diff --git a/documentation/ru-ru/SA1108.md b/documentation/ru-ru/SA1108.md new file mode 100644 index 000000000..ed3f3dffb --- /dev/null +++ b/documentation/ru-ru/SA1108.md @@ -0,0 +1,69 @@ +## SA1108 + + + + + + + + + + + + + + +
TypeNameSA1108BlockStatementsMustNotContainEmbeddedComments
CheckIdSA1108
КатегорияПравила удобочитаемости
+ +## Причина + +Оператор C# содержит комментарий между объявлением оператора и открывающей скобкой оператора. + +## Описание правила + +Нарушение этого правила происходит, когда код содержит комментарий между объявлением оператора и открывающей скобкой. Например: + +```csharp +if (x != y) +// Убедитесь, что x не равно y +{ +} +``` + +Комментарий может быть помещен над оператором или внутри тела оператора: + +```csharp +// Убедитесь, что x не равно y +if (x != y) +{ +} + +if (x != y) +{ + // Убедитесь, что x не равно y +} +``` + +Если комментарий используется для того, чтобы закомментировать строку кода, начинайте его с четырех предворяющих слэш, а не с двух: + +```csharp +if (x != y) +////if (x == y) +{ +} +``` + +## Как исправить нарушения + +Чтобы исправить нарушение этого правила, переместите комментарий над оператором, в тело оператора или удалите комментарий. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.ReadabilityRules", "SA1108:BlockStatementsMustNotContainEmbeddedComments", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1108 // BlockStatementsMustNotContainEmbeddedComments +#pragma warning restore SA1108 // BlockStatementsMustNotContainEmbeddedComments +``` diff --git a/documentation/ru-ru/SA1109.md b/documentation/ru-ru/SA1109.md new file mode 100644 index 000000000..fc5f0e609 --- /dev/null +++ b/documentation/ru-ru/SA1109.md @@ -0,0 +1,51 @@ +## SA1109 + + + + + + + + + + + + + + +
TypeNameSA1109BlockStatementsMustNotContainEmbeddedRegions
CheckIdSA1109
КатегорияПравила удобочитаемости
+ +:warning: Это правило было намеренно исключено из **StyleCop Analyzers**. Дополнительную информацию см. в разделе: [Известные изменения](KnownChanges.md). + +## Причина + +Оператор C# содержит тег `#region` между объявлением оператора и открывающей скобкой оператора. + +## Описание правила + +Нарушение этого правила происходит, если код содержит тег `#region` между объявлением и открывающей скобкой. Например: + +```csharp +if (x != y) +#region +{ +} +#endregion +``` + +Это приведет к тому, что тело оператора будет скрыто при сворачивании области `#region`. + +## Как исправить нарушения + +Чтобы исправить нарушение этого правила, удалите `#region` или переместите его за пределы утверждения. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.ReadabilityRules", "SA1109:BlockStatementsMustNotContainEmbeddedRegions", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1109 // BlockStatementsMustNotContainEmbeddedRegions +#pragma warning restore SA1109 // BlockStatementsMustNotContainEmbeddedRegions +``` diff --git a/documentation/ru-ru/SA1110.md b/documentation/ru-ru/SA1110.md new file mode 100644 index 000000000..6b8d4107f --- /dev/null +++ b/documentation/ru-ru/SA1110.md @@ -0,0 +1,53 @@ +## SA1110 + + + + + + + + + + + + + + +
TypeNameSA1110OpeningParenthesisMustBeOnDeclarationLine
CheckIdSA1110
КатегорияПравила удобочитаемости
+ +## Причина + +Открывающая круглая или квадратная скобка в вызове метода или индексатора C# или в объявлении метода или индексатора не размещается на той же строке, что и имя метода или индексатора. + +## Описание правила + +Нарушение этого правила происходит, когда открывающая скобка вызова или объявления метода или индексатора не размещается на той же строке, что и сам метод или индексатор. Следующие примеры показывают правильное размещение открывающей скобки: + +```csharp +public string JoinName(string first, string last) +{ + return JoinStrings( + first, last); +} + +public int this[int x] +{ + get { return this.items[x]; } +} +``` + +## Как исправить нарушение + +Чтобы исправить нарушение этого правила, убедитесь, что открывающая скобка находится в той же строке, что и имя метода или +индексатора. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.ReadabilityRules", "SA1110:OpeningParenthesisMustBeOnDeclarationLine", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1110 // OpeningParenthesisMustBeOnDeclarationLine +#pragma warning restore SA1110 // OpeningParenthesisMustBeOnDeclarationLine +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1111.md b/documentation/ru-ru/SA1111.md new file mode 100644 index 000000000..5a8a63815 --- /dev/null +++ b/documentation/ru-ru/SA1111.md @@ -0,0 +1,53 @@ +## SA1111 + + + + + + + + + + + + + + +
TypeNameSA1111ClosingParenthesisMustBeOnLineOfLastParameter
CheckIdSA1111
КатегорияПравила удобочитаемости
+ +## Cause + +Закрывающая круглая скобка или квадратная скобка в вызове метода или индексатора C#, или в объявлении метода или индексатора, не размещена на той же строке, что и последний параметр. + +## Описание правила + +Нарушение этого правила происходит, когда закрывающая скобка в вызове метода или индексатора или их объявлении не размещается на той же строке, что и последний параметр. Следующие примеры показывают правильное размещение скобки: + +```csharp +public string JoinName(string first, string last) +{ + string name = JoinStrings( + first, + last); +} + +public int this[int x] +{ + get { return this.items[x]; } +} +``` + +## Как исправить нарушения + +Чтобы исправить нарушение этого правила, убедитесь, что закрывающая скобка находится на той же строке, что и последний параметр. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.ReadabilityRules", "SA1111:ClosingParenthesisMustBeOnLineOfLastParameter", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1111 // ClosingParenthesisMustBeOnLineOfLastParameter +#pragma warning restore SA1111 // ClosingParenthesisMustBeOnLineOfLastParameter +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1112.md b/documentation/ru-ru/SA1112.md new file mode 100644 index 000000000..97b4e3efa --- /dev/null +++ b/documentation/ru-ru/SA1112.md @@ -0,0 +1,46 @@ +## SA1112 + + + + + . + + + + + + + + + +
TypeNameSA1112ClosingParenthesisMustBeOnLineOfOpeningParenthesis
CheckIdSA1112
КатегорияПравила удобочитаемости
+ +## Cause + +Закрывающая круглая скобка или квадратная скобка в вызове метода или индексатора C#, или в объявлении метода или индексатора не размещается на той же строке, что и открывающая скобка, если элемент не принимает никаких параметров. + +## Описание правила + +Нарушение этого правила происходит, когда метод или индексатор не принимает никаких параметров, а закрывающая скобка вызова или объявления метода или индексатора не размещена на той же строке, что и открывающая скобка. В следующем примере показано правильное размещение закрывающей скобки: + +```csharp +public string GetName() +{ + return this.name.Trim(); +} +``` + +## Как исправить нарушения + +Чтобы исправить нарушение этого правила, убедитесь, что закрывающая скобка расположена на той же строке, что и открывающая. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.ReadabilityRules", "SA1112:ClosingParenthesisMustBeOnLineOfOpeningParenthesis", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1112 // ClosingParenthesisMustBeOnLineOfOpeningParenthesis +#pragma warning restore SA1112 // ClosingParenthesisMustBeOnLineOfOpeningParenthesis +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1113.md b/documentation/ru-ru/SA1113.md new file mode 100644 index 000000000..96970bcac --- /dev/null +++ b/documentation/ru-ru/SA1113.md @@ -0,0 +1,54 @@ +## SA1113 + + + + + + + + + + + + + + +
TypeNameSA1113CommaMustBeOnSameLineAsPreviousParameter
CheckIdSA1113
КатегорияПравила удобочитаемости
+ +## Причина + +Запятая между двумя параметрами в вызове метода или индексатора C#, или в объявлении метода или индексатора не размещается на той же строке, что и предыдущий параметр. + +## Описание правила + +Нарушение этого правила происходит, когда запятая между двумя параметрами метода или индексатора не ставится на той же строке, что и предыдущий параметр. Следующие примеры показывают правильное размещение запятой: + +```csharp +public string JoinName(string first, string last) +{ + string name = JoinStrings( + first, + last); +} + +public int this[int x, + int y] +{ + get { return this.items[x, y]; } +} +``` + +## Как исправить нарушения + +Чтобы исправить нарушение этого правила, убедитесь, что запятая находится в той же строке, что и предыдущий параметр. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.ReadabilityRules", "SA1113:CommaMustBeOnSameLineAsPreviousParameter", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1113 // CommaMustBeOnSameLineAsPreviousParameter +#pragma warning restore SA1113 // CommaMustBeOnSameLineAsPreviousParameter +``` diff --git a/documentation/ru-ru/SA1114.md b/documentation/ru-ru/SA1114.md new file mode 100644 index 000000000..61f523543 --- /dev/null +++ b/documentation/ru-ru/SA1114.md @@ -0,0 +1,60 @@ +## SA1114 + + + + + + + + + + + + + + +
TypeNameSA1114ParameterListMustFollowDeclaration
CheckIdSA1114
КатегорияПравила удобочитаемости
+ +## Причина + +Начало списка параметров для вызова или объявления метода или индексатора не начинается на той же строке, что и открывающая скобка, или на строке после открывающей скобки. + +## Описание правила + +Нарушение этого правила происходит, если между открывающей скобкой и началом списка параметров есть одна или несколько пустых строк. Например: + +```csharp +public string JoinName( + + string first, string last) +{ +} +``` + +Список параметров должен начинаться в той же строке, что и открывающая скобка, или на следующей строке. Например: + +```csharp +public string JoinName(string first, string last) +{ +} + +public string JoinName( + string first, string last) +{ +} +``` + +## Как исправить нарушения + +Чтобы исправить нарушение этого правила, убедитесь, что список параметров начинается в той же строке, что и открывающая скобка, или в следующей строке. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.ReadabilityRules", "SA1114:ParameterListMustFollowDeclaration", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1114 // ParameterListMustFollowDeclaration +#pragma warning restore SA1114 // ParameterListMustFollowDeclaration +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1115.md b/documentation/ru-ru/SA1115.md new file mode 100644 index 000000000..fb96f8650 --- /dev/null +++ b/documentation/ru-ru/SA1115.md @@ -0,0 +1,62 @@ +## SA1115 + + + + + + + + + + + + + + +
TypeNameSA1115ParameterMustFollowComma
CheckIdSA1115
КатегорияПравила удобочитаемости
+ +## Причина + +Параметр в вызове или объявлении метода или индексатора C# не начинается в той же строке, что и предыдущий параметр, или в следующей строке. + +## Описание правила + +Нарушение этого правила происходит, если между параметром и предыдущим параметром есть одна или несколько пустых строк. Например: + +```csharp +public string JoinName( + string first, + + string last) +{ +} +``` + +Параметр должен начинаться в той же строке, что и предыдущая запятая, или на следующей строке. Например: + +```csharp +public string JoinName(string first, string last) +{ +} + +public string JoinName( + string first, + string last) +{ +} +``` + +## Как исправить нарушения + +Чтобы исправить нарушение этого правила, убедитесь, что параметр начинается в той же строке, что и предыдущая запятая, или в следующей строке. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.ReadabilityRules", "SA1115:ParameterMustFollowComma", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1115 // ParameterMustFollowComma +#pragma warning restore SA1115 // ParameterMustFollowComma +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1116.md b/documentation/ru-ru/SA1116.md new file mode 100644 index 000000000..1ce074d7c --- /dev/null +++ b/documentation/ru-ru/SA1116.md @@ -0,0 +1,56 @@ +## SA1116 + + + + + . + + + + + + + + + +
TypeNameSA1116SplitParametersMustStartOnLineAfterDeclaration
CheckIdSA1116
КатегорияПравила удобочитаемости
+ +## Причина + +Параметры вызова или объявления метода или индексатора C# занимают несколько строк, но первый параметр не начинается на строке после открывающей скобки. + +## Описание правила + +Нарушение этого правила происходит, когда параметры метода или индексатора охватывают несколько строк, но первый параметр не начинается в строке после открывающей скобки. Например: + +```csharp +public string JoinName(string first, + string last) +{ +} +``` + +Параметры должны начинаться строке следующей сразу после объявления, если параметр занимает несколько строк: + +```csharp +public string JoinName( + string first, + string last) +{ +} +``` + +## Как исправить нарушение + +Чтобы исправить нарушение этого правила, убедитесь, что первый параметр начинается строке следующей сразу после открывающей скобки, или поместите все параметры в одной строке, если они не слишком длинные. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.ReadabilityRules", "SA1116:SplitParametersMustStartOnLineAfterDeclaration", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1116 // SplitParametersMustStartOnLineAfterDeclaration +#pragma warning restore SA1116 // SplitParametersMustStartOnLineAfterDeclaration +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1117.md b/documentation/ru-ru/SA1117.md new file mode 100644 index 000000000..5c8eb367d --- /dev/null +++ b/documentation/ru-ru/SA1117.md @@ -0,0 +1,70 @@ +## SA1117 + + + + + + + + + + + + + + +
TypeNameSA1117ParametersMustBeOnSameLineOrSeparateLines
CheckIdSA1117
КатегорияПравила удобочитаемости
+ +## Причина + +Параметры вызова или объявления метода или индексатора C# не находятся в одной строке или каждый в отдельной строке. + +## Описание правила + +Нарушение этого правила происходит, когда параметры метода или индексатора не находятся в одной строке или каждый в отдельной строке. Например: + +```csharp +public string JoinName(string first, string middle, + string last) +{ +} +``` + +Все параметры можно разместить в одной строке: + +```csharp +public string JoinName(string first, string middle, string last) +{ +} + +public string JoinName( + string first, string middle, string last) +{ +} +``` + +В качестве альтернативы каждый параметр можно поместить в отдельную строку: + +```csharp +public string JoinName( + string first, + string middle, + string last) +{ +} +``` + +## Как исправить нарушения + +Чтобы исправить нарушение этого правила, поместите все параметры в одну строку или поместите каждый параметр в отдельной строке. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.ReadabilityRules", "SA1117:ParametersMustBeOnSameLineOrSeparateLines", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1117 // ParametersMustBeOnSameLineOrSeparateLines +#pragma warning restore SA1117 // ParametersMustBeOnSameLineOrSeparateLines +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1118.md b/documentation/ru-ru/SA1118.md new file mode 100644 index 000000000..abcec6804 --- /dev/null +++ b/documentation/ru-ru/SA1118.md @@ -0,0 +1,74 @@ +## SA1118 + + + + + + + + + + + + + + +
TypeNameSA1118ParameterMustNotSpanMultipleLines
CheckIdSA1118
КатегорияПравила удобочитаемости
+ +## Причина + +Параметр метода или индексатора C#, кроме первого параметра, занимает несколько строк. + +## Описание правила + +Чтобы предотвратить чрезмерное усложнение и нечитабельность вызовов методов, отдельные параметры и аргументы должны располагаться на одной строке. Если параметры, кроме первого параметра, занимают несколько строк, может быть +трудно определить, сколько параметров передано в метод. В целом, код становится трудночитаемым. О нарушении этого правила сообщается, если параметр или аргумент занимает несколько строк, за исключением следующих особых случаев +случаев: + +* Первый параметр может занимать несколько строк +* Анонимные методы (включая лямбда-выражения) могут занимать несколько строк +* Выражения вызова могут занимать несколько строк +* Выражения создания объектов и массивов могут занимать несколько строк +* Выражения `with` (C# 9) могут занимать несколько строк. + +Например, следующий код будет нарушать это правило, поскольку второй параметр охватывает несколько строк: + +```csharp +return JoinStrings( + "Джон", + "Smith" + + " Doe"); +``` + +Чтобы исправить пример, приведенный выше, убедитесь, что параметры после первого параметра не располагаются в нескольких строках. Если +это приведет к тому, что параметр окажется слишком длинным, сохраните его значение во временной переменной. Например: + +```csharp +string last = "Smith" + + " Doe"; + +return JoinStrings( + "John", + last); +``` + +В некоторых случаях это позволит написать метод еще более лаконично, например: + +```csharp +return JoinStrings("John", last); +``` + +## Как исправить нарушения + +Чтобы исправить нарушение этого правила, убедитесь, что параметры и аргументы не занимают несколько строк, за исключением особых случаев, перечисленных выше. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.ReadabilityRules", "SA1118:ParameterMustNotSpanMultipleLines", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1118 // ParameterMustNotSpanMultipleLines +#pragma warning restore SA1118 // ParameterMustNotSpanMultipleLines +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1119.md b/documentation/ru-ru/SA1119.md new file mode 100644 index 000000000..e6b8403dc --- /dev/null +++ b/documentation/ru-ru/SA1119.md @@ -0,0 +1,56 @@ +## SA1119 + + + + + + + + + + + + + + +
TypeNameSA1119StatementMustNotUseUnnecessaryParenthesis
CheckIdSA1119
КатегорияПравила удобства поддержки
+ +## Причина + +Оператор C# содержит скобки, в которых нет необходимости и которые следует удалить. + +## Описание правила + +В C# можно вставить круглые скобки практически вокруг любого типа выражения, оператора или конструкции, и во многих ситуациях использование круглых скобок может значительно улучшить читаемость кода. Однако чрезмерное использование круглых скобок может иметь обратный эффект, усложняя чтение и сопровождение кода. + +Нарушение этого правила происходит, когда скобки используются в ситуациях, когда они не несут никакой практической пользы. +Как правило, это происходит, когда скобки окружают выражение, которое не требует использования скобок, и выражение с круглыми скобками находится в корне оператора. Например, следующие строки кода содержат ненужные скобки, что приводит к нарушению этого правила: + +```csharp +int x = (5 + b); +string y = (this.Method()).ToString()); +return (x.Value); +``` + +В каждом из этих утверждений лишние скобки можно убрать без ущерба для читаемости кода: + +```csharp +int x = 5 + b; +string y = this.Method().ToString(); +return x.Value; +``` + +## Как исправить нарушения + +Чтобы исправить нарушение этого правила, уберите лишние скобки. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.MaintainabilityRules", "SA1119:StatementMustNotUseUnnecessaryParenthesis", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1119 // StatementMustNotUseUnnecessaryParenthesis +#pragma warning restore SA1119 // StatementMustNotUseUnnecessaryParenthesis +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1120.md b/documentation/ru-ru/SA1120.md new file mode 100644 index 000000000..be39c6ced --- /dev/null +++ b/documentation/ru-ru/SA1120.md @@ -0,0 +1,39 @@ +## SA1120 + + + + + + + + + + + + + + +
TypeNameSA1120CommentsMustContainText
CheckIdSA1120
КатегорияПравила удобочитаемости
+ +## Причина + +Комментарий C# не содержит текста комментария. + +## Описание правила + +Нарушение этого правила происходит всякий раз, когда код содержит комментарий C#, не содержащий никакого текста. + +## Как исправить нарушение + +Чтобы исправить нарушение этого правила, добавьте текст в комментарий или удалите комментарий. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.ReadabilityRules", "SA1120:CommentsMustContainText", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1120 // CommentsMustContainText +#pragma warning restore SA1120 // CommentsMustContainText +``` diff --git a/documentation/ru-ru/SA1121.md b/documentation/ru-ru/SA1121.md new file mode 100644 index 000000000..ffdd0815a --- /dev/null +++ b/documentation/ru-ru/SA1121.md @@ -0,0 +1,64 @@ +## SA1121 + + + + + + + + + + + + + + +
TypeNameSA1121UseBuiltInTypeAlias
CheckIdSA1121
КатегорияПравила удобочитаемости
+ +## Причина + +В коде используется один из основных типов C#, но не используется встроенный псевдоним для этого типа. + +## Описание правила + +Нарушение этого правила происходит, если в коде используется один из следующих типов: *Boolean, Byte, Char, Decimal, Double, Int16, Int32, Int64, Object, SByte, Single, String, UInt16, UInt32, UInt64*. + +Нарушение также происходит, если любой из этих типов представлен в коде с использованием полного пространства имен для типа: *System.Boolean, System.Byte, System.Char, System.Decimal, System.Double, System.Int16, System.Int32, System.Int64, System.Object, System.SByte, System.Single, System.String, System.UInt16, System.UInt32, System.UInt64*. + +Вместо того чтобы использовать имя типа или полное имя типа, всегда следует использовать встроенные псевдонимы для этих типов: *bool, byte, char, decimal, double, short, int, long, object, sbyte, float, string, ushort, uint, ulong*. + +В следующей таблице перечислены все эти типы во всех трех форматах: + + +| Псевдоним типа | Тип | Полное имя типа | +| --- | --- | --- | +| bool | Boolean | System.Boolean | +| byte | Byte | System.Byte | +| char | Char | System.Char | +| decimal | Decimal | System.Decimal | +| double | Double | System.Double | +| short | Int16 | System.Int16 | +| int | Int32 | System.Int32 | +| long | Int64 | System.Int64 | +| object | Object | System.Object | +| sbyte | SByte | System.SByte | +| float | Single | System.Single | +| string | String | System.String | +| ushort | UInt16 | System.UInt16 | +| uint | UInt32 | System.UInt32 | +| ulong | UInt64 | System.UInt64 | + +## Как исправить нарушения + +Чтобы исправить нарушение этого правила, замените тип на встроенный псевдоним для этого типа. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.ReadabilityRules", "SA1121:UseBuiltInTypeAlias", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1121 // UseBuiltInTypeAlias +#pragma warning restore SA1121 // UseBuiltInTypeAlias +``` diff --git a/documentation/ru-ru/SA1122.md b/documentation/ru-ru/SA1122.md new file mode 100644 index 000000000..e593c58a7 --- /dev/null +++ b/documentation/ru-ru/SA1122.md @@ -0,0 +1,49 @@ +## SA1122 + + + + + + + + + + + + + + +
TypeNameSA1122UseStringEmptyForEmptyStrings
CheckIdSA1122
КатегорияПравила удобочитаемости
+ +## Причина + +В коде C# присутствует пустая строка, записанная как `""`. + +## Описание правила + +Нарушение этого правила происходит, когда код содержит пустую строку. Например: + +```csharp +string s = ""; +``` + +Это приведет к тому, что компилятор внедрит пустую строку в скомпилированный код. Вместо того чтобы включать жестко закодированную пустую строку, используйте статическое свойство **string.Empty**: + +```csharp +string s = string.Empty; +``` + +## Как исправить нарушения + +Чтобы исправить нарушение этого правила, замените жестко закодированную пустую строку на **string.Empty**. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.ReadabilityRules", "SA1122:UseStringEmptyForEmptyStrings", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1122 // UseStringEmptyForEmptyStrings +#pragma warning restore SA1122 // UseStringEmptyForEmptyStrings +``` diff --git a/documentation/ru-ru/SA1123.md b/documentation/ru-ru/SA1123.md new file mode 100644 index 000000000..770187284 --- /dev/null +++ b/documentation/ru-ru/SA1123.md @@ -0,0 +1,39 @@ +## SA1123 + + + + + + + + + + + + + + +
TypeNameSA1123DoNotPlaceRegionsWithinElements
CheckIdSA1123
КатегорияПравила удобочитаемости
+ +## Причина + +Код на языке C# содержит область `#region` в теле элемента кода. + +## Описание правила + +Нарушение этого правила происходит всякий раз, когда область `#region` помещается в тело элемента кода. Во многих редакторах, включая Visual Studio, область `#region` по умолчанию отображается свернутой, скрывая код внутри области. Как правило, скрывать код в теле элемента - плохая практика, так как это может привести к неправильным решениям, поскольку код будет поддерживаться в течение долгого времени. + +## Как исправить нарушения + +Чтобы исправить нарушение этого правила, удалите область `#region` из кода. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.ReadabilityRules", "SA1123:DoNotPlaceRegionsWithinElements", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1123 // DoNotPlaceRegionsWithinElements +#pragma warning restore SA1123 // DoNotPlaceRegionsWithinElements +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1124.md b/documentation/ru-ru/SA1124.md new file mode 100644 index 000000000..f8dbd1126 --- /dev/null +++ b/documentation/ru-ru/SA1124.md @@ -0,0 +1,39 @@ +## SA1124 + + + + + + + + + + + + + + +
TypeNameSA1124DoNotUseRegions
CheckIdSA1124
КатегорияПравила удобочитаемости
+ +## Причина + +Код на языке C# содержит область `#region`. + +## Описание правила + +Нарушение этого правила происходит всякий раз, когда область `#region` размещается в любом месте кода. Во многих редакторах, включая Visual Studio, область `#region` по умолчанию отображается свернутой, скрывая код внутри области. Как правило, скрывать код - плохая практика, так как это может привести к неправильным решениям в процессе работы над кодом. + +## Как исправить нарушения + +Чтобы исправить нарушение этого правила, удалите область `#region` из кода. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.ReadabilityRules", "SA1124:DoNotUseRegions", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1124 // DoNotUseRegions +#pragma warning restore SA1124 // DoNotUseRegions +``` diff --git a/documentation/ru-ru/SA1125.md b/documentation/ru-ru/SA1125.md new file mode 100644 index 000000000..11347becc --- /dev/null +++ b/documentation/ru-ru/SA1125.md @@ -0,0 +1,39 @@ +## SA1125 + + + + + + + + + + + + + + +
TypeNameSA1125UseShorthandForNullableTypes
CheckIdSA1125
КатегорияПравила удобочитаемости
+ +## Причина + +Тип **Nullable** был определен без использования сокращения C#. Например, `Nullable` был использован вместо предпочтительного `DateTime?`. + +## Описание правила + +Нарушение этого правила происходит всякий раз, когда тип **Nullable** был определен без использования сокращенного стиля C#. + +## Как исправить нарушение + +Чтобы исправить нарушение этого правила, используйте сокращенную версию типа **Nullable**, т. е. **int?**, **DateTime?** и т. д. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.ReadabilityRules", "SA1125:UseShorthandForNullableTypes", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1125 // UseShorthandForNullableTypes +#pragma warning restore SA1125 // UseShorthandForNullableTypes +``` diff --git a/documentation/ru-ru/SA1126.md b/documentation/ru-ru/SA1126.md new file mode 100644 index 000000000..adaf1efee --- /dev/null +++ b/documentation/ru-ru/SA1126.md @@ -0,0 +1,43 @@ +## SA1126 + + + + + + + + + + + + + + +
TypeNameSA1126PrefixCallsCorrectly
CheckIdSA1126
КатегорияПравила удобочитаемости
+ +:warning: Это правило было намеренно исключено из **StyleCop Analyzers**. Дополнительную информацию см. в разделе: [Известные изменения](KnownChanges.md). + +## Причина + +Вызов члена не снабжен префиксом `this.`, `base.`, `object.` или `typename.` для указания предполагаемого вызова метода в файле кода C#. + +## Описание правила + +Нарушение этого правила происходит, когда код содержит вызов члена, который не имеет правильного префикса. + +В некоторых случаях из анализа исходного кода мы не можем точно определить, какой префикс требуется. Это может быть 'this', 'base', 'object', 'typename' класса, в котором мы находимся, или один из наших базовых классов. + +## Как исправить нарушения + +Чтобы исправить нарушение этого правила, вставьте правильный префикс перед обращением к члену класса. + +## Как подавить нарушения + +```csharp +[SuppressMessage("StyleCop.CSharp.ReadabilityRules", "SA1126:PrefixCallsCorrectly", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1126 // PrefixCallsCorrectly +#pragma warning restore SA1126 // PrefixCallsCorrectly +``` diff --git a/documentation/ru-ru/SA1127.md b/documentation/ru-ru/SA1127.md new file mode 100644 index 000000000..df19840dd --- /dev/null +++ b/documentation/ru-ru/SA1127.md @@ -0,0 +1,59 @@ +## SA1127 + + + + + + + + + + + + + + +
TypeNameSA1127GenericTypeConstraintsMustBeOnOwnLine
CheckIdSA1127
+ +:memo: **StyleCop Analyzers**, **StyleCop Classic**. + +## Cause + + , , C#. + +## + + , `where`, , , . + +, : + +```csharp +private void Method() where T : class where R : class, new() +{ +} +``` + + : + +```csharp +private void Method() + T : + R : , new() +{ +} +``` + +## + + , `where` . + +## + +```csharp +#pragma warning disable SA1127 // +private void Method() where T : class +#pragma warning restore SA1127 // +{ + // ... +} +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1128.md b/documentation/ru-ru/SA1128.md new file mode 100644 index 000000000..dd2eb3789 --- /dev/null +++ b/documentation/ru-ru/SA1128.md @@ -0,0 +1,92 @@ +## SA1128 + + + + + + + + + + + + + + +
TypeNameSA1128ConstructorInitializerMustBeOnOwnLine
CheckIdSA1128
+ +:memo: **StyleCop Analyzers**, **StyleCop Classic**. + +## + + , , C#. + +## + + , , , . + +, : + +```csharp +public class TypeName +{ + public TypeName() : this(0) + { + } + + public TypeName(int value) + { + } +} +``` + + `:` () , `base` `this`. + + : + +```csharp +public class TypeName +{ + public TypeName() : + base() + { + } +} +``` + + - : + +```csharp +public class TypeName +{ + public TypeName() + : this(0) + { + } + + public TypeName(int value) + { + } +} +``` + +## + + , , `:`, . + +## + +```csharp +public class TypeName +{ +#pragma warning disable SA1128 // + public TypeName() : this(0) +#pragma warning restore SA1128 // + { + } + + public TypeName(int value) + { + } +} +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1129.md b/documentation/ru-ru/SA1129.md new file mode 100644 index 000000000..21d02a881 --- /dev/null +++ b/documentation/ru-ru/SA1129.md @@ -0,0 +1,48 @@ +## SA1129 + + + + + + + + + + + + + + +
TypeNameSA1129DoNotUseDefaultValueTypeConstructor
CheckIdSA1129
+ +:memo: **StyleCop Analyzers**, **StyleCop Classic**. + +## + + `new T()`. + +## + + , `T` `new T()`. , `default(T)`. + +, : + +```csharp +ImmutableArray array = new ImmutableArray(); +``` + + , , , `array` `ImmutableArray`, `NullReferenceException`. , `default(T)`. + +> :memo: `default(T)` `new T()`. , `CancellationToken.None`, `0`, `0.0f`, `IntPtr.Zero` `RegexOptions.None`, ** . + +## + + , `new T()` `default(T)`. + +## + +```csharp +#pragma warning disable SA1129 // +IntPtr zero = new IntPtr(); +#pragma warning restore SA1129 // +``` diff --git a/documentation/ru-ru/SA1130.md b/documentation/ru-ru/SA1130.md new file mode 100644 index 000000000..e51060437 --- /dev/null +++ b/documentation/ru-ru/SA1130.md @@ -0,0 +1,70 @@ +## SA1130 + + + + + + + + + + + + + + +
TypeNameSA1130UseLambdaSyntax
CheckIdSA1130
+ +:memo: **StyleCop Analyzers**, **StyleCop Classic**. + +## + + `delegate () { }`, - `() => { }`. + +## + + , , "" `delegate (parameters) { }`. + +, : + +```csharp +Action a = delegate { x = 0; }; +Action b = delegate() { y = 0; }; +Func c = delegate(int m, int n) { return m + n; } +``` + + -. + +```csharp +Action a = () => { x = 0; }; +Action b = () => { y = 0; }; +Func c = (m, n) => m + n; +``` + +:memo: -. , , - . + +```csharp +var x = A(() => { }); // Expression +var y = A(delegate { }); // Action + +private Expression A(Expression expression) +{ + return expression; +} + +private Action A(Action action) +{ + return action; +} +``` + +## + + , -. + +## +```csharp +#pragma warning disable SA1130 // - +Action a = delegate { x = 0; } +#pragma warning restore SA1130 // - +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1131.md b/documentation/ru-ru/SA1131.md new file mode 100644 index 000000000..5ace1a4e7 --- /dev/null +++ b/documentation/ru-ru/SA1131.md @@ -0,0 +1,76 @@ +## SA1131 + + + + + + + + + + + + + + +
TypeNameSA1131UseReadableConditions
CheckIdSA1131
+ +:memo: **StyleCop Analyzers**, **StyleCop Classic**. + +## + + , . + +## + + , , . + +, : + +```csharp +public void Method(string value) +{ + if (null == value) // SA1131 + { + throw new ArgumentNullException(nameof(value)); + } +} +``` + + * * : + +* , `1`, `0.0f` `5.0m` +* +* `null` +* `default(T)` ( `T`) +* , +* `static readonly` , `IntPtr.Zero`. + + ** - , . + +** - , . + +* `==` +* `!=` +* `<` +* `>` +* `<=` +* `>=` + +## + + , . + +## + +```csharp +public void Method(string value) +{ +#pragma warning disable SA1131 // + if (null == value) +#pragma warning restore SA1131 // + { + throw new ArgumentNullException(nameof(value)); + } +} +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1132.md b/documentation/ru-ru/SA1132.md new file mode 100644 index 000000000..eb60ef55d --- /dev/null +++ b/documentation/ru-ru/SA1132.md @@ -0,0 +1,62 @@ +## SA1132 + + + + + + + + + + + + + + +
TypeNameSA1132DoNotCombineFields
CheckIdSA1132
+ +:memo: **StyleCop Analyzers**, **StyleCop Classic**. + +## + + . + +## + + , . + +, : + +```csharp +public class TypeName +{ + private int field1, + field2; // SA1132 +} +``` + + - : + +```csharp +public class TypeName +{ + private int field1; + private int field2; +} +``` + +## + + , . + +## + +```csharp +public class TypeName +{ + private int field1, +#pragma warning disable SA1132 // + field2; +#pragma warning restore SA1132 // +} +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1133.md b/documentation/ru-ru/SA1133.md new file mode 100644 index 000000000..39d0f6baf --- /dev/null +++ b/documentation/ru-ru/SA1133.md @@ -0,0 +1,77 @@ +## SA1133 + + + + + + + + + + + + + + +
TypeNameSA1133DoNotCombineAttributes
CheckIdSA1133
+ +:memo: **StyleCop Analyzers**, **StyleCop Classic**. + +## + + . + +## + + , . + +, : + +```csharp +[ExportCodeFixProvider(LanguageNames.CSharp, Name = nameof(MyCodeFixProvider)), Shared] +public class MyCodeFixProvider : CodeFixProvider +{ +} +``` + + : + +```csharp +[ExportCodeFixProvider(LanguageNames.CSharp, Name = nameof(MyCodeFixProvider))] +[Shared] +public class MyCodeFixProvider : CodeFixProvider +{ +} +``` + +### + + , . + +, : + +```csharp +public class MyClass<[Foo, Bar] T> +{ + public T MyMethod([In, MarshalAs(UnmanagedType.LPWStr)] string value) + { + ... + } +} +``` + +## + + , . + +## + +```csharp +[ExportCodeFixProvider(LanguageNames.CSharp, Name = nameof(MyCodeFixProvider)) +#pragma warning disable SA1133 // + Shared] +#pragma warning restore SA1133 // +public class MyCodeFixProvider : CodeFixProvider +{ +} +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1134.md b/documentation/ru-ru/SA1134.md new file mode 100644 index 000000000..61f94a996 --- /dev/null +++ b/documentation/ru-ru/SA1134.md @@ -0,0 +1,77 @@ +## SA1134 + + + + + + + + + + + + + + +
TypeNameSA1134AttributesMustNotShareLine
CheckIdSA1134
+ +:memo: **StyleCop Analyzers**, **StyleCop Classic**. + +## + + , . + +## + + , , . + +, : + +```csharp +[ExportCodeFixProvider(LanguageNames.CSharp, Name = +nameof(MyCodeFixProvider))][Shared] +public class MyCodeFixProvider : CodeFixProvider +{ +} +``` + + - : + +```csharp +[ExportCodeFixProvider(LanguageNames.CSharp, Name = nameof(MyCodeFixProvider))] +[Shared] +public class MyCodeFixProvider : CodeFixProvider +{ +} +``` + +### + + , . + +, : + +```csharp +public class MyClass<[Foo][Bar] T> +{ + public T MyMethod([In][MarshalAs(UnmanagedType.LPWStr)] string value) + { + ... + } +} +``` + +## + + , . + +## + +```csharp +#pragma warning disable SA1134 // +[ExportCodeFixProvider(LanguageNames.CSharp, Name = nameof(MyCodeFixProvider))][Shared] +#pragma warning restore SA1134 // +public class MyCodeFixProvider : CodeFixProvider +{ +} +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1135.md b/documentation/ru-ru/SA1135.md new file mode 100644 index 000000000..791c342e3 --- /dev/null +++ b/documentation/ru-ru/SA1135.md @@ -0,0 +1,64 @@ +## SA1135 + + + + + . + + + + + + + + + +
TypeNameSA1135UsingDirectivesMustBeQualified
CheckIdSA1135
+ +:memo: **StyleCop Analyzers**, **StyleCop Classic**. + +## + + `using` . + +## + + , `using` . + , . + +, : + +```csharp +namespace System.Threading +{ + using IO; + using Tasks; +} +``` + + - : + +```csharp +namespace System.Threading +{ + using System.IO; + using System.Threading.Tasks; + + using T = Thread; +} +``` + +## + + , . + +## + +```csharp +namespace N1.N2 +{ +#pragma warning disable SA1135 // using + using N3; +#pragma warning restore SA1135 // using +} +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1136.md b/documentation/ru-ru/SA1136.md new file mode 100644 index 000000000..aa9446d3e --- /dev/null +++ b/documentation/ru-ru/SA1136.md @@ -0,0 +1,60 @@ +## SA1136 + + + + + + + + + + + + + + +
TypeNameSA1136EnumValuesShouldBeOnSeparateLines
CheckIdSA1136
+ +:memo: **StyleCop Analyzers**, **StyleCop Classic**. + +## + + . + +## + + , . + +, : + +```csharp +public enum ExampleEnum +{ + FirstValue, SecondValue +} +``` + + - : + +```csharp +public enum ExampleEnum +{ + FirstValue, + SecondValue +} +``` + +## + + , . + +## + +```csharp +#pragma warning disable SA1136 // +public enum ExampleEnum +{ + FirstValue, SecondValue +} +#pragma warning restore SA1136 // +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1137.md b/documentation/ru-ru/SA1137.md new file mode 100644 index 000000000..53c10ffda --- /dev/null +++ b/documentation/ru-ru/SA1137.md @@ -0,0 +1,140 @@ +## SA1137 + + + + + + + + + + + + + + +
TypeNameSA1137ElementsShouldHaveTheSameIndentation
CheckIdSA1137
+ +:memo: **StyleCop Analyzers**, **StyleCop Classic**. + +## + + , , . + +## + + , , . + +, : + +```csharp +public void MethodName() +{ + A(); + B(); // SA1137: , +} +``` + + - : + +```csharp +public void MethodName() +{ + A(); + B(); +} +``` + + , . , - . + +```csharp +public void Method1() +{ + A(); + B(); +} + +public void Method2() +{ + A(); + B(); +} + +public void Method3() +{ +A(); +B(); +} + +public void Method4() + { + A(); + B(); + } +``` + +### + + , , . + . , , , , . , . , , SA1137 . + +```csharp + [Obsolete] // SA1137 ( ) +public void Method() // OK ( ) +{ +} + + public Task MethodAsync() // SA1137 ( ) + { // OK ( ) + } +``` + + , ** . + +```csharp +public void Method(int x, // ( ) + [In] int y, // OK ( ) + [In] int z) // SA1137 +{ +} +``` + +### + +, , . , , , . + . + + . + +```csharp +public int MethodName() +{ + int x; + + beginning: // OK ( ) + x = 3; // SA1137 ( , 'int x;' ) + +end: // SA1137 ( , 'beginning:' ) + return x; +} +``` + + `switch` `case` `default` . : + +1. `case` `default` `switch` . +2. `switch` ( `case`). +3. `switch` ( ). + +## + + , , . + +## + +```csharp +class TypeName { } + +#pragma warning disable SA1137 // + class Indented { } +#pragma warning restore SA1137 // +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1139.md b/documentation/ru-ru/SA1139.md new file mode 100644 index 000000000..90f73b8b9 --- /dev/null +++ b/documentation/ru-ru/SA1139.md @@ -0,0 +1,53 @@ +## SA1139 + + + + + + + + + + + + + + +
TypeNameSA1139UseLiteralsSuffixNotationInsteadOfCasting
CheckIdSA1139
+ +:memo: **StyleCop Analyzers**, **StyleCop Classic**. + +## + + . + +## + + . "U" 32- , "L" 64- , "UL" 64- , "F" 32- , "D" 64- "M" decimal. . + +, : + +```csharp +var x = (long)1; +``` + + - : + +```csharp +var x = 1L; +``` + +## + + , . + +## + +```csharp +[SuppressMessage("StyleCop.CSharp.ReadabilityRules", "SA1139:UseLiteralsSuffixNotationInsteadOfCasting", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1139 // +#pragma warning restore SA1139 // +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1141.md b/documentation/ru-ru/SA1141.md new file mode 100644 index 000000000..b36eaec0a --- /dev/null +++ b/documentation/ru-ru/SA1141.md @@ -0,0 +1,54 @@ +## SA1141 + + + + + + + + + + + + + + +
TypeNameSA1141UseTupleSyntax
CheckIdSA1141
+ +:memo: **StyleCop Analyzers**, **StyleCop Classic**. +:memo: C# 7.0 . + +## + + ValueTuple - . + +## + + ValueTuple - . , C# 7, . [ ](https://docs.microsoft.com/ru-ru/dotnet/csharp/tuples). + +, : + +```csharp +ValueTuple x; // SA1141 +``` + + - : + +```csharp +(int, int) x; +``` + +## + + , ValueTuple. + +## + +```csharp +[SuppressMessage("StyleCop.CSharp.ReadabilityRules", "SA1141:UseTupleSyntax", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1141 // +#pragma warning restore SA1141 // +``` \ No newline at end of file diff --git a/documentation/ru-ru/SA1142.md b/documentation/ru-ru/SA1142.md new file mode 100644 index 000000000..68b411e2e --- /dev/null +++ b/documentation/ru-ru/SA1142.md @@ -0,0 +1,58 @@ +## SA1142 + + + + + + + + + + + + + + +
TypeNameSA1142ReferToTupleElementsByName
CheckIdSA1142
+ +:memo: **StyleCop Analyzers**, **StyleCop Classic**. +:memo: C# 7.0 . + +## + + , . + +## + + , . , C# 7, . [ ](https://docs.microsoft.com/ru-ru/dotnet/csharp/tuples). + +, : + +```csharp +(int valueA, int valueB) x; + +var y = x.Item1; // SA1142 +``` + + - : + +```csharp +(int valueA, int valueB) x; + +var y = x.valueA; +``` + +## + + , . + +## + +```csharp +[SuppressMessage("StyleCop.CSharp.ReadabilityRules", "SA1142:ReferToTupleElementsByName", Justification = "Reviewed.")] +``` + +```csharp +#pragma warning disable SA1142 // +#pragma warning restore SA1142 // +``` \ No newline at end of file diff --git a/documentation/ru-ru/SX1101.md b/documentation/ru-ru/SX1101.md new file mode 100644 index 000000000..da45806ee --- /dev/null +++ b/documentation/ru-ru/SX1101.md @@ -0,0 +1,36 @@ +## SX1101 + + + + + . + + + + + + + + + +
TypeNameSX1101DoNotPrefixLocalMembersWithThis
CheckIdSX1101
+ +## Cause + + `this.`. + +## + + , , `this.`. , `this.`, . + . [SA1101](SA1101.md). + +## + + , 'this.' . + +## + +```csharp +#pragma warning disable SX1101 // DoNotPrefixLocalMembersWithThis +#pragma warning restore SX1101 // DoNotPrefixLocalMembersWithThis +``` \ No newline at end of file diff --git a/documentation/ru-ru/SpacingRules.md b/documentation/ru-ru/SpacingRules.md new file mode 100644 index 000000000..c3adb8df3 --- /dev/null +++ b/documentation/ru-ru/SpacingRules.md @@ -0,0 +1,34 @@ +### (SA1000-) +, . + + | | +-----------|------|------------- +[SA1000](SA1000.md) | KeywordsMustBeSpacedCorrectly | C# . +[SA1001](SA1001.md) | CommasMustBeSpacedCorrectly | C# . +[SA1002](SA1002.md) | SemicolonsMustBeSpacedCorrectly | C# . +[SA1003](SA1003.md) | SymbolsMustBeSpacedCorrectly | C# . +[SA1004](SA1004.md) | DocumentationLinesMustBeginWithSingleSpace | C# . +[SA1005](SA1005.md) | SingleLineCommentsMustBeginWithSingleSpace | C# . +[SA1006](SA1006.md) | PreprocessorKeywordsMustNotBePrecededBySpace | C# . +[SA1007](SA1007.md) | OperatorKeywordMustBeFollowedBySpace | operator C# . +[SA1008](SA1008.md) | OpeningParenthesisMustBeSpacedCorrectly | C# . +[SA1009](SA1009.md) | ClosingParenthesisMustBeSpacedCorrectly | C# . +[SA1010](SA1010.md) | OpeningSquareBracketsMustBeSpacedCorrectly | C# . +[SA1011](SA1011.md) | ClosingSquareBracketsMustBeSpacedCorrectly | C# . +[SA1012](SA1012.md) | OpeningBracesMustBeSpacedCorrectly | C# . +[SA1013](SA1013.md) | ClosingBracesMustBeSpacedCorrectly | C# . +[SA1014](SA1014.md) | OpeningGenericBracketsMustBeSpacedCorrectly | C# . +[SA1015](SA1015.md) | ClosingGenericBracketsMustBeSpacedCorrectly | C# . +[SA1016](SA1016.md) | OpeningAttributeBracketsMustBeSpacedCorrectly | C# . +[SA1017](SA1017.md) | ClosingAttributeBracketsMustBeSpacedCorrectly | C# . +[SA1018](SA1018.md) | NullableTypeSymbolsMustNotBePrecededBySpace | nullable C# . +[SA1019](SA1019.md) | MemberAccessSymbolsMustBeSpacedCorrectly | C# . +[SA1020](SA1020.md) | IncrementDecrementSymbolsMustBeSpacedCorrectly | C# . +[SA1021](SA1021.md) | NegativeSignsMustBeSpacedCorrectly | C# . +[SA1022](SA1022.md) | PositiveSignsMustBeSpacedCorrectly | C# . +[SA1023](SA1023.md) | DereferenceAndAccessOfMustBeSpacedCorrectly | C# . +[SA1024](SA1024.md) | ColonsMustBeSpacedCorrectly | C# . +[SA1025](SA1025.md) | CodeMustNotContainMultipleWhitespaceInARow | . +[SA1026](SA1026.md) | CodeMustNotContainSpaceAfterNewKeywordInImplicitlyTypedArrayAllocation | C# . +[SA1027](SA1027.md) | UseTabsCorrectly | , . +[SA1028](SA1028.md) | CodeMustNotContainTrailingWhitespace | , () .