Short-Circuit Evaluation
Parte de la sección Lógica y Flujo del Journey de C# de Coddy — lección 36 de 66.
La evaluación de cortocircuito es una técnica de optimización en C# donde el segundo operando de los operadores AND lógico (&&) y OR (||) se evalúa solo cuando es necesario.
Para el AND lógico (&&), si el primer operando es false, el resultado siempre será false independientemente del segundo operando:
bool result = false && SomeMethod();En este ejemplo, SomeMethod() no se llamará porque el primer operando ya es false.
Para el OR lógico (||), si el primer operando es true, el resultado siempre será true independientemente del segundo operando:
bool result = true || SomeMethod();Aquí, SomeMethod() no se llamará porque el primer operando ya es true.
Este comportamiento se puede usar para prevenir errores, como verificar si un objeto es null antes de acceder a sus propiedades:
// Safe - if student is null, the right side won't evaluate
if (student != null && student.Grade > 70)
{
Console.WriteLine("Student passed!");
}Desafío
FácilCrea un método llamado ProcessUserInput que tome dos argumentos:
- Una cadena (
input) - Un entero (
minLength)
El método debe:
- Comprobar si la entrada no es nula
- Comprobar si la longitud de la entrada es al menos
minLength - Solo si ambas condiciones son verdaderas, imprimir "Valid input: " seguido de la entrada
- Si alguna condición falla, imprimir "Invalid input"
Usa evaluación de cortocircuito para prevenir cualquier posible NullReferenceException.
Pruébalo tú mismo
using System;
class ProcessUserInput
{
public static void processUserInput(string input, int minLength)
{
// Escribe tu código aquí
}
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y Flujo
1Multi-dimensional Arrays
2D Arrays BasicsDeclaring and Initializing 2DAccessing 2D Array ElementsNested Loops with 2D ArraysJagged ArraysCommon Matrix OperationsRecap - Multi-dimensional4Flow Control Techniques
Early ReturnsGuard ClausesJump Statements (goto)Break and ContinueFlatten Nested Conditionals7Logical Operators Advanced
Short-Circuit EvaluationConditional Logical OperatorsOperator PrecedenceRecap - Advanced Operators2Advanced Decision Making
Multiple ConditionsComplex Boolean LogicIf vs. Switch ComparisonNested Switch StatementsRecap - Advanced Decisions5Exception Handling
Try-Catch BasicsException TypesMultiple Catch BlocksWorking with FilesFinally BlockUsing vs. Try-FinallyCustom ExceptionsRecap - Error Handling3Loop Enhancements
Loop PerformanceIterating ComplexEach Loop TypeRefactoring LoopsRecap - Optimized Loops6Null Handling
Null Reference BasicsNullable Value TypesNull Checking PatternsDefensive ProgrammingRecap - Null Safety