Menu
Coddy logo textTech

Savunmacı Programlama

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

Defansif programlama, null referanslarının neden olduğu hataları önlemeye yardımcı olan bir tekniktir. Nesneleri kullanmaya çalışmadan önce null değerlerini kontrol etmeyi içerir.

Bir nesneyi kullanmadan önce null değerini kontrol edin:

string name = GetNameFromSomewhere();

// Defansif kontrol
if (name == null)
{
    // Null durumunu ele al
    name = "Default Name";
}

// Artık name'i güvenle kullanmak mümkün
Console.WriteLine(name.ToUpper());

Yöntemlerde parametreleri doğrulayın:

public void ProcessOrder(Order order)
{
    // Null parametre için savunmacı kontrol
    if (order == null)
    {
        Console.WriteLine("Error: Order cannot be null");
        return;
    }
    
    // Artık siparişi işlemek güvenli
    Console.WriteLine("Processing order: " + order.Id);
}

Daha temiz null denetimleri için koşullu erişim operatörünü (?.) kullanın:

Customer customer = GetCustomerFromSomewhere();

// Bunun yerine:
// string city = null;
// if (customer != null && customer.Address != null)
// {
//     city = customer.Address.City;
// }

// Bunu kullan:
string city = customer?.Address?.City;
challenge icon

Görev

Kolay

ProcessUserData adlı bir yöntem oluşturun; bu yöntem userData adlı bir dize parametresi kabul etmelidir. Yöntem şunları yapmalıdır:

  1. userData değerinin null olup olmadığını kontrol edin - null ise "Error: User data is null" yazdırın ve geri dönün.
  2. userData değerinin boş olup olmadığını kontrol edin - boş ise "Error: User data is empty" yazdırın ve geri dönün.
  3. Veriler geçerliyse, verileri büyük harfe dönüştürün ve "Processing: [UPPERCASE_DATA]" yazdırın.

Kendin dene

using System;

class ProcessUserData
{
    public static void processUserData(string userData)
    {
        // İpucu: "null" dizesi gerçek bir null değer olarak ele alınmalıdır
        
        // 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