Short-Circuit Evaluation
Coddy'nin C# Journey'sinin Mantık & Akış bölümünün bir parçası — ders 36 / 66.
Kısa devre değerlendirmesi, C#'ta mantıksal AND (&&) ve OR (||) operatörlerinin ikinci operandının yalnızca gerektiğinde değerlendirildiği bir optimizasyon tekniğidir.
Mantıksal VE (&&) için, ilk iş operandı false ise, ikinci iş operandı ne olursa olsun sonuç her zaman false olur:
bool result = false && SomeMethod();Bu örnekte, SomeMethod() çağrılmayacak çünkü ilk iş operandı zaten false.
Mantıksal OR (||) için, ilk işlenen true ise, ikinci işlenenden bağımsız olarak sonuç her zaman true olur:
bool result = true || SomeMethod();Burada, SomeMethod() çağrılmayacak çünkü ilk iş operandı zaten true.
Bu davranış, hataları önlemek için kullanılabilir, örneğin bir nesnenin özelliklerine erişmeden önce null olup olmadığını kontrol etmek gibi:
// Safe - if student is null, the right side won't evaluate
if (student != null && student.Grade > 70)
{
Console.WriteLine("Student passed!");
}Görev
KolayProcessUserInput adında bir metot oluşturun, iki argüman alsın:
- Bir string (
input) - Bir tamsayı (
minLength)
Metot şunları yapmalıdır:
- Girişin null olmadığını kontrol edin
- Giriş uzunluğunun en az
minLengtholduğunu kontrol edin - Sadece her iki koşul da doğruysa, "Valid input: " yazdırın ardından girişi ekleyin
- Herhangi bir koşul başarısız olursa, "Invalid input" yazdırın
Olası bir NullReferenceException'ı önlemek için kısa devre değerlendirmesini kullanın.
Kendin dene
using System;
class ProcessUserInput
{
public static void processUserInput(string input, int minLength)
{
// Buraya kodunuzu yazın
}
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık & Akış bölümündeki tüm dersler
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