Menu
Coddy logo textTech

Null Kontrolü Desenleri

Coddy'nin C# Journey'sinin Mantık & Akış bölümünün bir parçası. Ders 33 / 66.

Null denetimi, sağlam C# kodu yazmanın temel bir parçasıdır. null değerlerini güvenli bir şekilde denetlemek için kullanabileceğin çeşitli kalıplar vardır.

Yaygın null denetimi kalıplarını inceleyelim:

İlk olarak, temel null kontrolü:

string name = null;

if (name == null)
{
    Console.WriteLine("Name is null");
}

Bir diğer yaygın desen, potansiyel olarak null olan nesnelerin üyelerine güvenli bir şekilde erişen null koşullu operatördür (?.):

string name = null;
int? length = name?.Length;  // length null olacak

Null birleştirme işleci (??), bir ifade null olduğunda varsayılan bir değer sağlar:

string name = null;
string displayName = name ?? "Unknown";  // displayName "Unknown" olacak

Daha karmaşık senaryolar için bu kalıpları birbirine de zincirleyebilirsin:

string name = null;
int length = (name ?? "").Length;  // uzunluk 0 olacak

string.IsNullOrWhiteSpace() yöntemi, bir dizenin null, boş veya yalnızca boşluk karakterleri içerip içermediğini tek bir çağrıyla kontrol etmenin kullanışlı bir yoludur:

string name = null;

if (string.IsNullOrWhiteSpace(name))
{
    Console.WriteLine("Name is null, empty, or whitespace");
}

Bu, null değerlerini, boş dizeleri ve yalnızca boşluk karakterlerinden oluşan dizeleri aynı şekilde ele almanız gerektiğinde özellikle kullanışlıdır. Örneğin:

string name1 = null;
string name2 = "";
string name3 = "   ";

// Üçü de mesajı yazdıracak
if (string.IsNullOrWhiteSpace(name1)) Console.WriteLine("name1 is null/empty/whitespace");
if (string.IsNullOrWhiteSpace(name2)) Console.WriteLine("name2 is null/empty/whitespace");
if (string.IsNullOrWhiteSpace(name3)) Console.WriteLine("name3 is null/empty/whitespace");

string.IsNullOrWhiteSpace() ifadesinin basit bir null denetiminden farklı olduğunu unutma. Bu ifade ayrıca boş dizeleri ve yalnızca boşluk, sekme veya diğer boşluk karakterlerini içeren dizeleri de yakalar.

challenge icon

Görev

Kolay

processUserName dizesini alan userName adlı bir metot oluşturun. Metot şunları yapmalıdır:

  1. userName null ise "No user provided" döndürmelidir
  2. userName boşsa veya yalnızca boşluk karakterlerinden oluşuyorsa "Invalid username" döndürmelidir
  3. Aksi takdirde, [userName] gerçek kullanıcı adı olmak üzere "Welcome, [userName]!" döndürmelidir

Uygun null denetimi kalıplarını kullanmayı unutmayın.

Kendin dene

using System;

class ProcessUserName
{
    public static string processUserName(string userName)
    {
        // Kodunuzu buraya yazın
    }
}
quiz iconKendini test et

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

Kendi başına pratik yap: Online C# derleyicisi