Dichiarazione IF a più condizioni più efficiente

0

Sto usando una funzione per confrontare oltre 100 variabili all'interno delle classi tra loro e sono curioso di sapere se un metodo per confrontare più dichiarazioni di condizione sia più efficiente di un altro. Attualmente sto prendendo in considerazione uno di questi metodi. Penso che il singolo Se si usi E / O sia più pulito, ma le prestazioni sono più importanti. (il mio codice è VB.Net)

Multiple ElseIf

If Not ClassA.num = ClassB.num Then
    Return False
ElseIf Not ClassA.str = ClassB.str Then
    Return False
Else : Return True
End If

Single se si utilizza And / Or

If Not ClassA.num = ClassB.num Or
   Not ClassA.str = ClassB.str Then
       Return False
Else : Return True
End If

Nidificato se

If ClassA.num = ClassB.num Then
    If ClassA.str = ClassB.str Then
        Return True
    End If
End If
Return False

Modifica: snippet di codice secondo modificato da And a Or

Modifica 2: terzo snippet modificato da If not to If

    
posta Wayne 06.02.2014 - 21:48
fonte

1 risposta

3

Non penso che diventi più efficiente della valutazione di corto circuito per catene banali come questa:

Return ClassA.intVariable = ClassB.intVariable AndAlso ClassA.longVariable = _
        ClassB.longVariable AndAlso ClassA.str = ClassB.str

Nota come viene utilizzato AndAlso , non And . Anche le cose più brevi e più veloci da confrontare sono menzionate (e valutate) prima, con cose più lunghe e più lente da confrontare più avanti nella parte posteriore.

    
risposta data 06.02.2014 - 21:54
fonte

Leggi altre domande sui tag