Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Уровень тяжести: Предупреждение
Описание
Это правило обнаруживает несогласованные операторы присвоения в хэш-таблицах и определениях enum. Последовательные операторы назначения легче читать и поддерживать, когда их операторы присваивания выравниваются вертикально.
Это правило проверяет пары ключ-значение в хэш-таблицах и определениях членов enum, чтобы убедиться, = что знаки совпадают. Используйте это правило для обеспечения согласованного форматирования многострочных хэш-таблиц и определений enum.
Правило игнорирует присваивания в хэш-таблицах и enum, которые находятся в той же строке, что и другие присваивания. Например, правило игнорирует $h = @{ a = 1; b = 2 }.
Пример
Несоответствующий
$hashtable = @{
property = 'value'
anotherProperty = 'another value'
}
enum Enum {
member = 1
anotherMember = 2
}
Compliant
$hashtable = @{
property = 'value'
anotherProperty = 'another value'
}
enum Enum {
member = 1
anotherMember = 2
}
Конфигурация
Rules = @{
PSAlignAssignmentStatement = @{
Enable = $true
CheckHashtable = $true
AlignHashtableKvpWithInterveningComment = $true
CheckEnum = $true
AlignEnumMemberWithInterveningComment = $true
IncludeValuelessEnumMembers = $true
}
}
Параметры
Enable
Этот параметр контролирует, проверяет ли ScriptAnalyzer код по этому правилу. Он принимает булево значение. Чтобы включить это правило, установите этот параметр на $true. Значение по умолчанию — $false.
CheckHashtable
Этот параметр управляет, проверяет ли ScriptAnalyzer выравнивание назначений в хэш-таблицах и конфигурациях Desired State Configuration (DSC). Он принимает булево значение. Чтобы отключить эту проверку, установите этот параметр на $false. Значение по умолчанию — $true.
AlignHashtableKvpWithInterveningComment
Этот параметр контролирует, включает ли ScriptAnalyzer пары ключ-значение хэш-таблицы, содержащие промежуточный комментарий при определении выравнивания. Он принимает булево значение. Чтобы исключить эти линии, установите этот параметр на $false. Значение по умолчанию — $true.
Рассмотрим следующее:
$hashtable = @{
property = 'value'
anotherProperty <#A Comment#> = 'another value'
anotherDifferentProperty = 'yet another value'
}
При отключённой этой настройке реплика с комментарием игнорируется. Знаки равенства выровнены для оставшихся строк:
$hashtable = @{
property = 'value'
anotherProperty <#A Comment#> = 'another value'
anotherDifferentProperty = 'yet another value'
}
При включённой этой настройке знаки равенства выравниваются для всех строк:
$hashtable = @{
property = 'value'
anotherProperty <#A Comment#> = 'another value'
anotherDifferentProperty = 'yet another value'
}
CheckEnum
Этот параметр управляет, проверяет ли ScriptAnalyzer выравнивание назначений в определениях членов enum. Он принимает булево значение. Чтобы отключить эту проверку, установите этот параметр на $false. Значение по умолчанию — $true.
AlignEnumMemberWithInterveningComment
Этот параметр контролирует, включает ли ScriptAnalyzer элементы enum, содержащие промежуточный комментарий при определении выравнивания. Он принимает булево значение. Чтобы исключить эти линии, установите этот параметр на $false. Значение по умолчанию — $true.
ВключитьValuelessEnumMembers
Этот параметр контролирует, включает ли ScriptAnalyzer элементы enum без явно назначенных значений при определении выравнивания. Он принимает булево значение. Чтобы исключить элементы без значения, установите этот параметр на $false. Значение по умолчанию — $true.
Рассмотрим следующее:
enum Enum {
member = 1
anotherMember = 2
anotherDifferentMember
}
При отключении этой настройки третья строка, которая не имеет значения, не учитывается при выборе места выравнивания назначения.
enum Enum {
member = 1
anotherMember = 2
anotherDifferentMember
}
При включении элемент без значения включается в выравнивание так, как если бы у него было значение:
enum Enum {
member = 1
anotherMember = 2
anotherDifferentMember
}