严重程度等级:警告
说明
该规则检测哈希表和枚举定义中赋值算子错位的情况。 当连续的赋值运算符垂直排列时,它们更易阅读和维护。
该规则检查哈希表中的键值对和枚举成员定义,以确保 = 符号对应。 使用此规则强制多行哈希表和枚举定义的格式一致。
该规则忽略了哈希表和枚举中与其他赋值同列的赋值。 例如,该规则忽略 $h = @{ a = 1; b = 2 }了。
示例
非符合性
$hashtable = @{
property = 'value'
anotherProperty = 'another value'
}
enum Enum {
member = 1
anotherMember = 2
}
合规的
$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
}
}
参数
启用
该参数控制 ScriptAnalyzer 是否会根据该规则检查代码。 它接受一个布尔值。 要启用该规则,将该参数设为 $true。 默认值为 $false。
校验哈希表
该参数控制 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 是否检查枚举成员定义中的赋值对齐。 它接受一个布尔值。 要禁用此检查,将该参数 $false设置为 。 默认值为 $true。
AlignEnum成员与介入评论
该参数控制 ScriptAnalyzer 是否包含包含中间注释的枚举成员,以决定对齐。 它接受一个布尔值。 要排除这些线,将参数设为 $false。 默认值为 $true。
IncludeValuelessEnumMembers
该参数控制 ScriptAnalyzer 在确定对齐时是否包含枚举成员但未明确分配值。 它接受一个布尔值。 要排除无值成员,将该参数设为 $false。 默认值为 $true。
考虑以下情况:
enum Enum {
member = 1
anotherMember = 2
anotherDifferentMember
}
禁用该设置后,第三行(无值)在选择对齐赋值时不会被考虑。
enum Enum {
member = 1
anotherMember = 2
anotherDifferentMember
}
启用后,无值成员会被包含在对齐中,就像它有以下值一样:
enum Enum {
member = 1
anotherMember = 2
anotherDifferentMember
}