IRONSOFTWAREHOME
GELIŞTIRICI GÜNCELLEMELERI

C# Getter Setter (Geliştiriciler İçin Nasıl Çalışır)

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Jacob Mellor
Updated: 21 Nisan 2026

Getter ve setter'lar, C# gibi nesne yönelimli programlama dillerinde temel kavramlardır. Bu iki metod, sınıf özelliklerinin erişimini ve değiştirilebilmesini kontrol etmemize olanak tanır. Bu eğitimde, C# getter'larını ve private setter'larını içeren yeni başlangıç ve orta seviye ile ilgili kod blokları üzerinden keşfedeceğiz.

Getter ve Setter'lara Giriş

Getter ve Setter Nedir?

Temelde, getter ve setter'lar bir sınıftaki özel değişkenlere erişim izni veren metotlardır. Getter, özel bir alan değişkeninin değerini döndürürken, setter bunu değiştirir. Bu metotlar, bir sınıfın dahili verisinin (alanlar) güvenli ve doğru bir şekilde erişilmesini veya değiştirilmesini sağlar.

Neden ihtiyacımız var?

Bir public class Car ve bir private string description özelliğine sahip olmayı hayal edin. Bu sınıf dışındaki birisi açıklamayı öğrenmek isterse, doğrudan erişemez çünkü bu özeldir. Burada getter ve setter'ların rolü başlar.

Bir getter, kullanıcıların bir private string description değerini doğrudan erişip değiştirmelerine izin vermeden almasına olanak tanır. Öte yandan, setter, kullanıcılara belirlediğimiz koşullarda açıklamayı değiştirmelerine olanak tanır.

Erişim Belirleyicileri

Erişim belirteçleri, bir alanın veya özelliğin sınıf dışından görülebilirliğini ve erişilebilirliğini tanımlar. En yaygın kullanılan değiştiriciler public ve private'dir.

  • Public: public olarak ilan edilen alanlar veya özellikler programınızın herhangi bir yerinden erişilebilir. Örneğin, kodunuzun herhangi bir kısmı tarafından erişilebilen ve değiştirilebilen bir public int Age özelliğine sahip olabilirsiniz.
  • Private: private olarak ilan edilen özellikler veya alanlar yalnızca tanımlı sınıf içinde erişilebilir, örneğin private int age. Bu kapsülleme, yetkisiz değişiklikleri önlemeye yardımcı olur ve sınıfın iç durumunun düzgün bir şekilde korunmasını sağlar.

Basit Getter ve Setter

Basit bir örnekle başlayalım.

using System;

public class Person
{
    private string name;  // This is a private string name property variable
    
    // This is the getter
    public string GetName()
    {
        return name;
    }

    // This is the setter
    public void SetName(string newName)
    {
        name = newName;
    }
}

class Program
{
    static void Main()
    {
        Person person = new Person();
        person.SetName("John");
        Console.WriteLine(person.GetName());
    }
}

Yukarıdaki class Person içerisinde, name özelliği için hem bir getter (GetName) hem de bir setter (SetName) bulunur. static void Main metodunu çalıştırdığınızda, setter kullanarak isim için o değeri ayarladığımız için "John" yazdıracaktır.

Otomatik Olarak Uygulanan Özellikler

Şimdi, "Getter'lar ve setter'lar için her zaman ayrı metotlar mı yazmalıyım?" diye düşünebilirsiniz. Cevap, "hayır." C# bu işlemi kolaylaştırmak için "otomatik olarak uygulanan özellikler" veya "otomatik özellikler" adı verilen bir kavram tanıttı.

C#'ta, otomatik özellikler kullanarak bir private field ve ilişkili özelliğini ilan etmek için kısa bir yol sağlayabilirsiniz. İşte bir örnek:

using System;

public class Student
{
    public string Name { get; set; } // This is an auto-implemented or automatic property
    public string Title { get; set; } // Another auto-implemented property
}

class Program
{
    static void Main()
    {
        Student student = new Student();
        student.Name = "Alice";  // Using setter
        Console.WriteLine(student.Name);  // Using getter
    }
}

Student sınıfında, Name özelliği hem bir getter hem de bir setter'dır, ki bunlar otomatik olarak uygulanmaktadır. C# derleyicisi sahne arkasında bir private string name alanı oluşturur ve Name özelliği bu alana erişim sağlar.

Özelliklerde Gelişmiş Erişim Belirteçleri

Sadece Okunabilir Özellikler

Bazen, dışarıdan değiştirilemeyen ancak okunabilen bir özellik sağlamak isteyebilirsiniz. Bu durumlarda sadece okunabilir özellikler çok faydalıdır. Özelliği sadece okunabilir yapmak için setter'ı atlayabilirsiniz.

Diyelim ki Person sınıfımıza salt okunur bir string Description özelliği eklemek istiyoruz:

public class Person
{
    public string Name { get; set; }
    public string Description { get; }
    
    public Person(string name, string description)
    {
        Name = name;
        Description = description;
    }
}

Bu örnekte, Description özelliği yalnızca Person sınıfının yapıcısı içinde ayarlanabilir. Bir kez ayarlandığında, dışarıdan değiştirilemez.

Özel Setter'lar

Bazen, özelliğin sınıf dışından okunmasına izin verip sadece sınıf içinden ayarlanmasına izin vermek isteyebilirsiniz. Bu bir private set kullanılarak gerçekleştirilir.

using System;

public class Program
{
    public string Description { get; private set; }

    public Program()
    {
        Description = "This is a program about getters and setters.";
    }
}

class ProgramTest
{
    static void Main()
    {
        Program myProgram = new Program();
        Console.WriteLine(myProgram.Description);  // Allowed
        // myProgram.Description = "New Description";  // Not allowed
    }
}

class Program içerisinde, Description özelliği bir private set'a sahiptir, bu da sınıf dışından değiştirilemeyeceği anlamına gelir; böylece verinin bütünlüğü sağlanır.

Kalıtım ve Geçersiz Kılma

Türev sınıflarla çalışırken, getter ve setter metodlarını davranışlarını özelleştirmek için geçersiz kılabilirsiniz. Bu, değer alırken veya ayarlarken ekstra mantık eklemenizi sağlar.

public class Person
{
    public virtual string Name { get; set; }
}

public class Student : Person
{
    private string studentID;

    public override string Name
    {
        get { return base.Name; }
        set
        {
            if (!string.IsNullOrEmpty(value))
                base.Name = value;
        }
    }
}

Bu örnekte, Student sınıfı Person sınıfından kalıtım alır ve Name özelliğinin setter'ını geçersiz kılar. İsim boş veya null olmadığından emin olmak için ayarlama işlemi öncesinde bir doğrulama kontrolü ekler.

C# Geliştiriminizi Geliştirmek için Iron Suite Tanıtımı

Iron Suite, C# geliştirme yeteneklerini önemli ölçüde artıran bir araştırma araçları koleksiyonudur. IronPDF, IronXL, IronOCR ve IronBarcode'u içerir. Bu araçların her biri, C#'ın çeşitli alanlarına entegre edilebilecek benzersiz bir amaca hizmet eder.

IronPDF - Güçlü Bir PDF Yönetim Aracı

IronPDF hakkında daha fazlasını öğrenin geliştirme için oluşturma, okuma ve PDF belgelerini düzenlemeye olanak sağlayan bir kütüphanedir. HTML'yi PDF'ye dönüştürme veya getter ve setter'lar aracılığıyla PDF meta verilerini yönetme olsun, IronPDF bu konularda size yardımcı olur.

IronPDF, HTML'den PDF'ye dönüşümde mükemmeldir, özgün düzenler ve stillerin hassas bir şekilde korunmasını sağlar. Raporlar, faturalar ve belgeler gibi web tabanlı içeriklerden PDF oluşturmak için mükemmeldir. HTML dosyaları, URL'ler ve ham HTML dizeleri için destekle, IronPDF yüksek kaliteli PDF belgelerini kolayca üretir.

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}

IronXL - Excel Manipülasyonu Kolaylaştırıldı

Excel dosyalarıyla çalışırken, IronXL Excel Kütüphanesi okuma ve yazma sürecini basitleştirir. Bu araç, C#'ta getter ve setter'lar için aynı sözdizimini kullanarak, Excel dosyalarının özel ve genel dizelerini veya tamsayılarını işlemek için kullanılabilir.

IronOCR - Optical Character Recognition in C#

IronOCR'u Keşfedin, görüntüleri aranabilir metne çeviren bir Optik Karakter Tanıma kütüphanesidir. Uygulamanız taranmış belgelerden metin okumayı içeriyorsa, IronOCR'un güçlü yetenekleri kolayca entegre edilebilir. Önceki örnek kurulumu itibarıyla sınıf Person veya sınıf Student'ta beklendiği gibi özel alanları ve genel dize açıklamalarını işleyebilir.

IronBarcode - Barkod Okuma ve Yazma Kütüphanesi

IronBarcode özelliklerini keşfedin barkod okuma ve yazma gerektiren uygulamalar için. C# programlamasında kullanılan getter ve setter'lar gibi, barkod verilerine doğrudan erişim ve otomatik özellikler aracılığıyla özelleştirme sağlar.

Iron Suite ve Getter'lar ve Setter'lar

Iron Suite paketi, C# geliştirmesiyle birlikte, getter ve setter'lar dahil sorunsuz bir şekilde entegre olur. Bu araçlar her C# projesine değer katar.

Sonuç

Özetlemek gerekirse:

  1. Getter and Setter: Bir sınıfın özel alanlarına erişimi ve değiştirilmesini sağlarlar.
  2. Auto Properties: Otomatik olarak uygulanmış özelliklerin yardımıyla otomatik getter ve setter'lara sahip olmanın zarif bir yolu.
  3. Access Modifiers: Özelliklerin erişilebilirliğini ince ayarlamalarına yardımcı olur.

Artık C#'ta getter ve setter'ları nasıl kullanacağınız konusunda sağlam bir anlayışa sahip olmalısınız.

Iron Suite'in araç takımı C# geliştiricileri için inanılmaz işlevsellik sunar. Bu ürünlerin her biri, IronPDF, IronXL, IronOCR ve IronBarcode dahil, bir Ücretsiz Iron Software araçları denemesi ile gelir, bu sayede bu güçlü kütüphaneleri projelerinizde keşfetme ve entegre etme imkanı sunar.

Kendinizi adamaya hazır olduğunuzda, bireysel lisanslar $999'den başlar. Bu araçlardan birden fazlasının ihtiyaçlarınıza uyduğunu düşünüyorsanız, yalnızca iki bireysel lisansın fiyatına tam Iron Suite paketini satın alma fırsatından yararlanabilirsiniz.

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Teknoloji Direktörü

Jacob Mellor, Iron Software'de Baş Teknoloji Yöneticisidir ve C# PDF teknolojisinde öncü bir mühendisdir. Iron Software'ın ana kod tabanının ilk geliştiricisi olarak, CEO Cameron Rimington ile birlikte şirketin ürün mimarisini 50'den fazla kişilik bir şirkete dönüştürmüştür ve NASA, Tesla ve dünya genelindeki devlet kurumlarına hizmet etmektedir.

...
Daha Fazla Oku

İlgili Makaleler

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez