Sé que AndAlso
es equivalente a &&
y OrElse
es equivalente a ||
. Pero ¿cuál es la forma más limpia de obtener el equivalente de Visual Basic And
y Or
en C#?Equivalente de E y O de Visual Basic en C#?
Por ejemplo, considere el siguiente código VB.NET. El método ValidateForControl
realiza una validación y devuelve si el estado del control especificado es válido. El formulario de entrada completo es válido si todos los controles son válidos. Sin embargo, cada control debe validarse individualmente, incluso si uno no es válido (lo que requiere que el operador no se cortocircuite). El operador And
de Visual Basic es perfecto para esta situación, pero desafortunadamente no hay un operador equivalente en C# hasta donde yo sé (&&
cortocircuitos).
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)
Además, para booleanos, es ^
en C# equivalentes a Xor
en Visual Basic?
+1 Por último, un buen caso de usuario donde los operadores no cortocircuitados están garantizados –
Usted ha escrito "cada control debe ser validado incluso si uno es válida** ". Eso es lo que sucederá incluso si te cortocircuitas. 'AndAlso',' && 'solo cortocircuito si uno de los operandos es ** False **. Quiso decir "cada control debe ser validado incluso si uno es inválida ** **" – MarkJ
@MarkJ Sí, estás en lo correcto, gracias. ;) –