AlignAssignmentStatement

Livello di gravità: Avviso

Descrizione

Questa regola rileva gli operatori di assegnazione disallineati nelle hashtable e nelle definizioni enum. Le istruzioni consecutive di assegnazione sono più facili da leggere e mantenere quando i loro operatori di assegnazione si allineano verticalmente.

Questa regola verifica le coppie chiave-valore nelle hashtable e nelle definizioni dei membri enum per assicurarsi che i = segni siano allineati. Usa questa regola per imporre una formattazione coerente nelle hashtable multilinea e nelle definizioni enum.

La regola ignora assegnazioni all'interno di hashtable ed enum che appaiono sulla stessa linea di altre assegnazioni. Ad esempio, la regola ignora $h = @{ a = 1; b = 2 }.

Example

Non conforme

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

Configurazione

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

Parametri

Enable

Questo parametro controlla se ScriptAnalyzer verifica il codice rispetto a questa regola. Accetta un valore booleano. Per abilitare questa regola, imposta questo parametro a $true. Il valore predefinito è $false.

CheckHashtable

Questo parametro controlla se ScriptAnalyzer controlla l'allineamento dell'assegnazione nelle hashtable e nelle configurazioni Desired State Configuration (DSC). Accetta un valore booleano. Per disabilitare questo controllo, imposta questo parametro su $false. Il valore predefinito è $true.

AlignHashtableKvpWithInterveningComment

Questo parametro controlla se ScriptAnalyzer include coppie chiave-valore hashtable che contengono un commento intermedio quando determina l'allineamento. Accetta un valore booleano. Per escludere queste linee, si imposta questo parametro a $false. Il valore predefinito è $true.

Tenere presente quanto segue:

$hashtable = @{
    property = 'value'
    anotherProperty <#A Comment#> = 'another value'
    anotherDifferentProperty = 'yet another value'
}

Con questa impostazione disabilitata, la frase con il commento viene ignorata. I segni uguali sono allineati per le restanti linee:

$hashtable = @{
    property                 = 'value'
    anotherProperty <#A Comment#> = 'another value'
    anotherDifferentProperty = 'yet another value'
}

Con questa impostazione attivata, i segni uguali sono allineati per tutte le linee:

$hashtable = @{
    property                      = 'value'
    anotherProperty <#A Comment#> = 'another value'
    anotherDifferentProperty      = 'yet another value'
}

CheckEnum

Questo parametro controlla se ScriptAnalyzer verifica l'allineamento dell'assegnazione nelle definizioni dei membri enum. Accetta un valore booleano. Per disabilitare questo controllo, imposta questo parametro su $false. Il valore predefinito è $true.

AllineaMembroInOCommentoIntervento

Questo parametro controlla se ScriptAnalyzer include membri enum che contengono un commento intermedio nel determinare l'allineamento. Accetta un valore booleano. Per escludere queste linee, si imposta questo parametro a $false. Il valore predefinito è $true.

Membri IncludeValuelessEnum

Questo parametro controlla se ScriptAnalyzer include membri enum senza valori esplicitamente assegnati al determinare l'allineamento. Accetta un valore booleano. Per escludere membri senza valore, imposta questo parametro a $false. Il valore predefinito è $true.

Tenere presente quanto segue:

enum Enum {
    member = 1
    anotherMember = 2
    anotherDifferentMember
}

Con questa impostazione disabilitata, la terza riga, che non ha valore, non viene presa in considerazione quando si sceglie dove allineare le assegnazioni.

enum Enum {
    member        = 1
    anotherMember = 2
    anotherDifferentMember
}

Con esso abilitato, il membro senza valore viene incluso nell'allineamento come se avesse un valore:

enum Enum {
    member                 = 1
    anotherMember          = 2
    anotherDifferentMember
}