Menu
Coddy logo textTech

Ewaluacja z krótkim spięciem

Część sekcji Logika i sterowanie przepływem ścieżki C# w Coddy. Lekcja 36 z 66.

Ewaluacja zwarciowa to technika optymalizacji w C#, w której drugi operand operatorów logicznych AND (&&) i OR (||) jest obliczany tylko wtedy, gdy jest to konieczne.

W przypadku logicznego AND (&&), jeśli pierwszy operand ma wartość false, wynik zawsze będzie miał wartość false, niezależnie od drugiego operandu:

bool result = false && SomeMethod();

W tym przykładzie SomeMethod() nie zostanie wywołana, ponieważ pierwszy operand ma już wartość false.

W przypadku logicznego OR (||), jeśli pierwszy operand ma wartość true, wynik zawsze będzie miał wartość true, niezależnie od drugiego operandu:

bool result = true || SomeMethod();

Tutaj SomeMethod() nie zostanie wywołana, ponieważ pierwszy operand ma już wartość true.

To zachowanie można wykorzystać do zapobiegania błędom, na przykład sprawdzając, czy obiekt ma wartość null, zanim uzyskasz dostęp do jego właściwości:

// Bezpieczne — jeśli student ma wartość null, prawa strona nie zostanie obliczona
if (student != null && student.Grade > 70)
{
    Console.WriteLine("Student passed!");
}
challenge icon

Wyzwanie

Łatwy

Utwórz metodę o nazwie ProcessUserInput, która przyjmuje dwa argumenty:

  • Ciąg znaków (input)
  • Liczbę całkowitą (minLength)

Metoda powinna:

  1. Sprawdzić, czy wartość input nie jest równa null
  2. Sprawdzić, czy długość wartości input wynosi co najmniej minLength
  3. Tylko jeśli oba warunki są spełnione, wypisać "Valid input: " i wartość input
  4. Jeśli którykolwiek z warunków nie jest spełniony, wypisać "Invalid input"

Użyj ewaluacji zwarciowej, aby zapobiec potencjalnemu NullReferenceException.

Spróbuj swoich sił

using System;

class ProcessUserInput
{
    public static void processUserInput(string input, int minLength)
    {
        // Wpisz tutaj swój kod
    }
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i sterowanie przepływem

Poćwicz samodzielnie: Kompilator C# online