Null Checking Patterns
Coddy'nin C# Journey'sinin Mantık & Akış bölümünün bir parçası — ders 33 / 66.
Null kontrolü, sağlam C# kodu yazmanın temel bir parçasıdır. Null değerleri güvenli bir şekilde kontrol etmek için kullanabileceğiniz birkaç desen vardır.
Bazı yaygın null kontrol desenlerini inceleyelim:
İlk olarak, temel null kontrolü:
string name = null;
if (name == null)
{
Console.WriteLine("Name is null");
}
Yaygın bir başka kalıp, potansiyel olarak null nesnelerin üyelerine güvenli erişim sağlayan null koşullu operatördür (?.):
string name = null;
int? length = name?.Length; // length will be null
Null-birleştirme operatörü (??), bir ifade null olduğunda varsayılan bir değer sağlar:
string name = null;
string displayName = name ?? "Unknown"; // displayName will be "Unknown"
Ayrıca bu kalıpları daha karmaşık senaryolar için zincirleyebilirsiniz:
string name = null;
int length = (name ?? "").Length; // length will be 0
string.IsNullOrWhiteSpace() yöntemi, bir dizenin null olup olmadığını, boş olup olmadığını veya yalnızca boşluk karakterleri içerip içermediğini kontrol eder. Dize girdisini tek bir çağrıda doğrulamak için kullanışlı bir yöntemdir:
string name = null;
if (string.IsNullOrWhiteSpace(name))
{
Console.WriteLine("No name provided"); // this will print
}
string blank = " ";
if (string.IsNullOrWhiteSpace(blank))
{
Console.WriteLine("Blank name provided"); // this will also print
}
string.IsNullOrWhiteSpace()'ı, null, boş dizeleri ve yalnızca boşluk içeren dizeleri eşdeğer geçersiz girdi olarak değerlendirmek istediğinizde kullanın.
Görev
KolayprocessUserName adında bir metot oluşturun ki bu metot bir string parametresi userName alsın. Metot şunları yapmalıdır:
- Eğer
userNamenull ise, "No user provided" döndürün - Eğer
userNameboş veya sadece boşluk içeriyorsa, "Invalid username" döndürün - Aksi takdirde, [userName] gerçek kullanıcı adının olduğu "Welcome, [userName]!" döndürün
Uygun null kontrol desenlerini kullanmayı unutmayın.
Kopya kağıdı
Temel null kontrolü için == null kullanın:
if (name == null)
{
Console.WriteLine("Name is null");
}Üye erişimini güvenli hale getirmek için null-koşullu operatörü ?. kullanın:
int? length = name?.Length; // length will be null if name is nullVarsayılan değerler sağlamak için null-birleştirme operatörü ?? kullanın:
string displayName = name ?? "Unknown";Null, boş veya sadece boşluk içeren dizeleri kontrol etmek için string.IsNullOrWhiteSpace() kullanın:
if (string.IsNullOrWhiteSpace(name))
{
Console.WriteLine("Name is null, empty, or whitespace");
}Karmaşık senaryolar için operatörleri zincirleyin:
int length = (name ?? "").Length; // length will be 0 if name is nullKendin dene
using System;
class ProcessUserName
{
public static string processUserName(string userName)
{
// 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