C# Dersleri 72 - Property Kullanımı

C# Dersleri 72 - Property Kullanımı


C# Property (Özellikler) Kullanımı

Property (Özellikler), C# sınıflarında özel alanlara (fields) kontrollü erişim sağlamak için kullanılan bir mekanizmadır. Property'ler, kapsülleme (encapsulation) prensibini uygulamak için yaygın olarak kullanılır ve veri güvenliğini artırırken, dış kodun bu verilere erişmesini veya değiştirmesini sağlar.

Property Nedir?

Property'ler, get ve set blokları ile çalışan, özel değişkenleri (fields) koruyan metotlara benzer yapılar sunar.

  • Getter: Değişkenin değerini döndürür.
  • Setter: Değişkene yeni bir değer atar.

Property Tanımlama

Property'lerin nasıl tanımlandığını ve nasıl kullanıldığını gösteren temel bir örnek:

using System;

class Person
{
    private string name; // Private alan

    // Property tanımlama
    public string Name
    {
        get { return name; } // Getter metodu
        set { name = value; } // Setter metodu
    }
}

class Program
{
    static void Main(string[] args)
    {
        Person person = new Person();

        // Property kullanarak değer atama
        person.Name = "Ali";

        // Property kullanarak değeri okuma
        Console.WriteLine($"Adı: {person.Name}");
    }
}

Programın Çıktısı

Adı: Ali

Property'lerin Avantajları

  • Veri Güvenliği: Verileri dışarıdan doğrudan erişime kapatır.
  • Doğrulama ve Kontrol: Property içindeki set bloğu ile veri doğrulaması yapılabilir.
  • Esneklik: Özellikler, gerektiğinde sadece okunabilir veya sadece yazılabilir olarak tanımlanabilir.

Property Kullanımı ile Veri Doğrulama

Setter metodu içinde veri doğrulama ekleyerek daha güvenli bir veri giriş sistemi oluşturabiliriz:

class Person
{
    private int age;

    public int Age
    {
        get { return age; }
        set
        {
            if (value > 0) // Negatif yaş engelleniyor
            {
                age = value;
            }
            else
            {
                Console.WriteLine("Yaş negatif olamaz!");
            }
        }
    }
}

class Program
{
    static void Main(string[] args)
    {
        Person person = new Person();

        person.Age = 25; // Geçerli değer
        Console.WriteLine($"Yaş: {person.Age}");

        person.Age = -5; // Geçersiz değer, hata mesajı verir
    }
}

Programın Çıktısı

Yaş: 25
Yaş negatif olamaz!

Sadece Okunabilir (Read-Only) Property

Property'nin yalnızca okunabilir olması istenirse, set bloğu kaldırılarak sadece get bloğu tanımlanabilir:

class Person
{
    private string nationality = "Türk";

    public string Nationality
    {
        get { return nationality; }
    }
}

class Program
{
    static void Main(string[] args)
    {
        Person person = new Person();
        Console.WriteLine($"Uyruğu: {person.Nationality}");
    }
}

Programın Çıktısı

Uyruğu: Türk

Otomatik Property (Auto-Implemented Properties)

C#’ta property tanımlamak için kısa bir yol olarak otomatik property kullanılabilir. Bu yöntemle get ve set blokları otomatik olarak oluşturulur ve özel değişken tanımlamak gerekmez:

class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
        Person person = new Person { Name = "Ali", Age = 30 };

        Console.WriteLine($"Ad: {person.Name}");
        Console.WriteLine($"Yaş: {person.Age}");
    }
}

Programın Çıktısı

Marka: Toyota

Readonly (Sadece Okunabilir) Otomatik Property

Sadece okunabilir bir otomatik özellik init anahtar kelimesi ile tanımlanabilir:

class Car
{
    public string Brand { get; init; } = "Toyota";
}

class Program
{
    static void Main(string[] args)
    {
        Car myCar = new Car { Brand = "Honda" }; // İlk atama geçerli
        Console.WriteLine($"Marka: {myCar.Brand}");
        
        // myCar.Brand = "Ford"; // Hata! init özelliği sadece nesne oluşturulurken atanabilir
    }
}

Sonuç

C#’ta property’ler, sınıfların özelliklerine güvenli ve kontrollü erişim sağlamak için kullanılır. get ve set blokları ile veri doğrulaması ve iş mantığı uygulanabilir. Otomatik özellikler (auto-implemented properties) ise kodu daha kısa ve okunabilir hale getirir. Property'ler, yazılım geliştirme sürecinde veri kapsülleme (encapsulation) için en yaygın kullanılan yapılardan biridir.

Bu içeriği beğendiyseniz paylaşarak destek olabilirsiniz!


Eğitim İçeriği

Eğitim C# Dersleri
Kategori Programlama Dili
Ders Adeti 80 Ders
Dil Türkçe
Güncelleme 04/2024
  • HTML Dersleri

    HTML Dersleri Sıfırdan İleri Seviyeye

    Kategori Web Programlama
    Ders Süresi 19 Ders
    Dil Türkçe
    Güncelleme 12/2020
    Derse Başla
  • Java Dersleri

    Java Dersleri ve Nesne Yönelimli Programlama

    Kategori Programlama Dili
    Ders Süresi 125 Ders
    Dil Türkçe
    Güncelleme 09/2020
    Derse Başla
  • CSS Dersleri

    CSS Dersleri Başlangıçtan İleri Seviyeye

    Kategori Web Programlama
    Ders Süresi 49 Ders
    Dil Türkçe
    Güncelleme 10/2021
    Derse Başla
  • Java Örnek Projeler

    Java Örnek Projeler

    Kategori Programlama Dili
    Ders Süresi 20 Ders
    Dil Türkçe
    Güncelleme 10/2022
    Derse Başla
  • C# Dersleri

    C# Dersleri ve Nesne Yönelimli Programlama

    Kategori Programlama Dili
    Ders Süresi 100 Ders
    Dil Türkçe
    Güncelleme 04/2024
    Derse Başla