AlignAssignmentStatement

嚴重程度等級:警告

說明

此規則可偵測雜湊表與列舉定義中錯位的指派運算子。 當連續的指派運算子垂直排列時,它們更容易閱讀和維護。

此規則檢查雜湊表中的鍵值對及枚舉成員定義,以確保 = 符號對齊。 使用此規則來強制多行雜湊表與枚舉定義的格式一致。

此規則忽略了雜湊表中出現在與其他指派同一行的賦值。 例如,該規則忽略 $h = @{ a = 1; b = 2 }了 。

Example

不合規

$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
}

Configuration

Rules = @{
    PSAlignAssignmentStatement = @{
        Enable                                  = $true
        CheckHashtable                          = $true
        AlignHashtableKvpWithInterveningComment = $true
        CheckEnum                               = $true
        AlignEnumMemberWithInterveningComment   = $true
        IncludeValuelessEnumMembers             = $true
    }
}

參數

Enable

此參數控制 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'
}

檢查枚舉

此參數控制 ScriptAnalyzer 是否檢查列舉成員定義中的指派對齊。 它接受一個布林值。 要停用此檢查,請將此參數設為 $false。 預設值為 $true

AlignEnumMemberWithInterveningComment

此參數控制 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
}