IRONSOFTWAREHOME
GELIŞTIRICI GÜNCELLEMELERI

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

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Jacob Mellor
Updated: 19 Temmuz 2026

Bir C#'te indisçi, bir sınıf veya yapı örneklerinin dizi erişim operatörü [] kullanılarak erişilmesini sağlayan özel bir özellik türüdür. Dizin oluşturucular, 'akıllı diziler' oluşturmak veya verileri basitleştirilmiş bir sözdizimi ile kapsüllerken çok faydalı olabilir. Sınıf örneklerini, dizilerde yaptığınız gibi bir indeks aracılığıyla veriye erişmek için kullanmanızın bir yolunu sağlarlar. Bu makale, pratik örneklerle C# dizin oluşturucularını nasıl tanımlayıp kullanacağınızı keşfedecek. Ve makalenin sonunda IronPDF kütüphanesini de keşfedeceğiz.

Temel Dizin Oluşturucu Söz Dizimi

Bir indisçi, sınıf veya yapı içinde this anahtar kelimesi kullanılarak tanımlanan bir örnek üyesidir, ardından indisçi bildirimi gelir. Ayrıca parametre türlerini ve dönüş türünü de belirtirsiniz. Bir dizin oluşturucu örnek üye için genel söz dizimi şu şekildedir:

public return_type this[parameter_type index]
{
    get
    {
        // Code to return data
    }
    set
    {
        // Code to set data
    }
}

Burada, return_type indisçinin döndüreceği değer türüdür, örneğin bir tamsayı değeri gibi ve parameter_type, genellikle bir int olan indeksi türüdür. get erişici belirtilen indeksteki değeri döndürür ve set blok kodu erişici o indekse bir değer atar.

Dizin Oluşturucu Tanımlama ve Kullanımı

Bir C# sınıfı içinde bir dizin oluşturucun uygulanmasının basit bir örneğini inceleyeceğiz. Bir dizi metni kapsülleyen Program sınıfını düşünün.

class Program
{
    private string[] values = new string[5]; // Array with 5 elements
    public string this[int index]
    {
        get
        {
            return values[index];
        }
        set
        {
            values[index] = value;
        }
    }
}

Yukarıdaki kodda:

  • Program sınıfı, values adlı bir dizi metni içerir.
  • string this[int index], indisçi bildirimidir, burada int index, dizinin elemanlarına erişmek için kullanılan indeks parametreli özelliktir.
  • get erişici belirtilen indeksteki indisli değeri döndürür ve set erişici o indekse bir indisli değer atar.

Bu, Program sınıfının bir örneğini oluşturabileceğiniz ve dizisini indeks kullanarak erişebileceğiniz anlamına gelir, şu şekilde:

class Program
{
    static void Main()
    {
        Program program = new Program();
        // Set values using indexer
        program[0] = "First";
        program[1] = "Second";
        // Access values using indexer
        Console.WriteLine(program[0]); // Output: First
        Console.WriteLine(program[1]); // Output: Second
    }
}

Bu kodda, indirçin dizisine erişim için basit bir sözdizimi sağladığını, bir dizideki elemanlara nasıl erişeceğinizle benzer şekilde gördüğünüzü görebilirsiniz.

get ve set Erişicileri Anlama

Indisçi içindeki get ve set erişicileri, verileri elde etmenizi ve atamanızı sağlayan özelliklerle benzer şekilde çalışan blok koddur. Temel fark, dizin oluşturucuların, bireysel veri üyeleri yerine veri koleksiyonları üzerinde çalışmak için bir dizin parametresini kullanmasıdır.

get bloğu belirtilen indeksteki veriyi döndürmekle sorumludur, oysa set bloğu, belirtilen indeks için veriyi atar. İşte anlamanızı pekiştirmek için başka bir örnek:

class StudentRecords
{
    private string[] studentNames = new string[3];
    public string this[int index]
    {
        get
        {
            if (index >= 0 && index < studentNames.Length)
            {
                return studentNames[index];
            }
            return "Invalid Index";
        }
        set
        {
            if (index >= 0 && index < studentNames.Length)
            {
                studentNames[index] = value;
            }
        }
    }
    public int Length
    {
        get { return studentNames.Length; }
    }
}

Bu örnekte:

  • StudentRecords sınıfı, öğrencilerin isimlerini tutan özel bir string[] studentNames dizisine sahiptir.
  • Dizin oluşturucu, indeksi dizinin sınırları içinde olup olmadığını kontrol eder.
  • Bir int türü Length özelliği, dizinin uzunluğuna erişim sağlar.

Bu sınıfı Main metodunda şu şekilde kullanabilirsiniz:

class Program
{
    public static void Main()
    {
        StudentRecords records = new StudentRecords();
        // Set values using indexer
        records[0] = "John";
        records[1] = "Jane";
        records[2] = "Bob";
        // Access values using indexer
        for (int i = 0; i < records.Length; i++)
        {
            Console.WriteLine(records[i]);
        }
    }
}

Genel Bir Dizin Oluşturucu Oluşturma

Dizin oluşturucular içeren genel sınıflar da oluşturabilirsiniz, böylece kodunuz birden fazla veri türünü işleyebilir. İşte genel bir dizin oluşturan basit bir genel sınıf örneği:

class GenericClass<t>
{
    private T[] elements = new T[5];
    public T this[int index]
    {
        get
        {
            return elements[index];
        }
        set
        {
            elements[index] = value;
        }
    }
    public int Length
    {
        get { return elements.Length; }
    }
}

Bu kodda:

  • GenericClass sınıfı, herhangi bir veri türü ile çalışabilen bir indirç tanımlar.
  • this[int index] indirçi, türden bağımsız olarak dizideki elemanlara erişmenizi sağlar.

Artık GenericClass farklı veri türleriyle Main metodunda kullanabilirsiniz:

class Program
{
    public static void Main()
    {
        GenericClass<int> intArray = new GenericClass<int>();
        intArray[0] = 10;
        intArray[1] = 20;

        GenericClass<string> stringArray = new GenericClass<string>();
        stringArray[0] = "Hello";
        stringArray[1] = "World";

        // Output the integer array values
        for (int i = 0; i < intArray.Length; i++)
        {
            Console.WriteLine(intArray[i]);
        }

        // Output the string array values
        for (int i = 0; i < stringArray.Length; i++)
        {
            Console.WriteLine(stringArray[i]);
        }
    }
}

IronPDF'i C# Dizinleyici ile Kullanma

C# İnidiçler (Geliştiriciler İçin Nasıl Çalışır): Şekil 1 - IronPDF

IronPDF, .NET uygulamalarında PDF oluşturma, düzenleme ve dönüştürme işlemleri için tasarlanmış bir C# kütüphanesidir. PDF'lerle çalışmayı geliştiriciler için HTML'den PDF oluşturma, PDF dosyalarını manipüle etme ve birleştirme, yazdırma ve programatik şekilde imza ekleme gibi ileri işlevler için basitleştirir.

IronPDF'den yararlanarak dizin oluşturucuların kullanıldığı C# programlarınızda dinamik olarak PDF içerik oluşturabilir ve yönetebilirsiniz. Örneğin, HTML dizgilerini tutan bir sınıfınız olduğunu ve bir dizin oluşturucu kullanarak her HTML girdisi için PDF oluşturmak istediğinizi varsayalım. Bu yaklaşım, PDF oluşturmayı kolaylaştırırken kodunuzu düzenli ve sezgisel tutar.

using IronPdf;
using System;

class PdfGenerator
{
    private string[] htmlTemplates = new string[3];
    public string this[int index]
    {
        get { return htmlTemplates[index]; }
        set { htmlTemplates[index] = value; }
    }

    public void GeneratePdf(int index, string outputPath)
    {
        var renderer = new ChromePdfRenderer();
        var pdfDocument = renderer.RenderHtmlAsPdf(this[index]); // Access HTML string using indexer
        pdfDocument.SaveAs(outputPath);
    }
}

class Program
{
    public static void Main()
    {
        PdfGenerator pdfGen = new PdfGenerator();
        // Populate HTML templates
        pdfGen[0] = "<h1>First Document</h1><p>This is the first PDF.</p>";
        pdfGen[1] = "<h1>Second Document</h1><p>This is the second PDF.</p>";
        pdfGen[2] = "<h1>Third Document</h1><p>This is the third PDF.</p>";

        // Generate PDFs using the indexer
        pdfGen.GeneratePdf(0, "first.pdf");
        pdfGen.GeneratePdf(1, "second.pdf");
        pdfGen.GeneratePdf(2, "third.pdf");

        Console.WriteLine("PDFs generated successfully.");
    }
}

C# İnidiçler (Geliştiriciler İçin Nasıl Çalışır): Şekil 2 - Konsol Çıkışı

Sonuç

C# dizin oluşturucuları, sınıflarınızı ve yapılarınızı dizi gibi davranan bir yardımcı özelliktir. Basitleştirilmiş sözdizimi ve esnek veri erişimi sağlayarak, daha sezgisel ve okunabilir kodlar oluşturabilirsiniz. Dizeler, tamsayılar veya başka herhangi bir veri türüyle çalışıyor olun, dizin oluşturucular, veri yapınızı kapsüllemenizi ve temiz ve etkili bir şekilde indeksler kullanarak erişmenizi sağlar.

IronPDF, gerekli tüm özelliklere erişim sağlayarak, PDF oluşturma, düzenleme ve görüntüleme işlemlerini gerçekleştirmeye yönelik bir ücretsiz deneme ile başlamayı kolaylaştırır. Yazılımı keşfederken acele etmenize gerek yok, memnun kaldığınızda lisanslar $999'dan başlayarak mevcuttur.

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