So che AndAlso
equivale a &&
e OrElse
equivale a ||
. Ma qual è il modo più pulito per ottenere l'equivalente di Visual Basic And
e Or
in C#?Equivalente di Visual Basic e And Or in C#?
Ad esempio, considerare il seguente codice VB.NET. Il metodo ValidateForControl
esegue alcune convalida e restituisce se lo stato del controllo specificato è valido. L'intero modulo di input è valido se tutti i controlli sono validi. Tuttavia, ogni controllo deve essere validato individualmente anche se uno non è valido (il che richiede che l'operatore non cortocircuiti). L'operatore And
di Visual Basic è perfetto per questa situazione, ma sfortunatamente non esiste un operatore equivalente in C# per quanto ne so (&&
cortocircuiti).
Return _
Me.ValidateForControl(Me.firstNameTextBox) And
Me.ValidateForControl(Me.middleNameTextBox) And
Me.ValidateForControl(Me.lastNameTextBox) And
Me.ValidateForControl(Me.streetAddressTextBox) And
Me.ValidateForControl(Me.cityTextBox) And
Me.ValidateForControl(Me.stateComboBox) And
Me.ValidateForControl(Me.zipCodeMaskedTextBox) And
Me.ValidateForControl(Me.phoneMaskedTextBox) And
Me.ValidateForControl(Me.emailAddressTextBox) And
Me.ValidateForControl(Me.checkInDateTimePicker) And
Me.ValidateForControl(Me.checkOutDateTimePicker) And
Me.ValidateForControl(Me.rentalUnitsGroupBox)
Inoltre, per booleani, è ^
in C# equivalenti a Xor
in Visual Basic?
+1 Infine un caso utente buona in cui gli operatori non in corto circuito sono garantiti –
Hai scritto "ogni controllo deve essere validato anche se uno è valido** ". Questo è ciò che accadrà anche in caso di cortocircuito. 'AndAlso',' && 'solo cortocircuito se uno degli operandi è ** False **. Intendevi "ogni controllo deve essere validato anche se uno è ** non valido **" – MarkJ
@MarkJ Sì, hai ragione, grazie. ;) –