IRONSOFTWAREHOME
GELIŞTIRICI GÜNCELLEMELERI

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

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

C# 9.0'daki init anahtar kelimesi, değişmez nesneler oluşturmak için sınıf özellikleri tanımlamanın yeni bir yolunu sundu. C#'ın önceki sürümlerinde, özellikler genellikle nesne alanlarını okumak ve yazmak için get ve set alıcıları ile kullanılırdı. Ancak, init ile, nesne başlatılması sırasında yazılabilir özellikler yapabilir ve sonrasında yalnızca okunur hale getirebilirsiniz.

Bu ders, C# init anahtar kelimesini pratik örnekler ve IronPDF kütüphanesi ile senaryolarla kullanmayı keşfedecek. Ayrıca geleneksel özellik ayarları (set) ile yeni init-only ayarları arasındaki temel farkları da öğreneceksiniz.

Init Keyword Temel Örneği

Temel bir örnekle başlayalım:

public class Person
{
    public string FirstName { get; init; }
    public string LastName { get; init; }
}

var person = new Person
{
    FirstName = "Iron",
    LastName = "Dev"
};

// person.FirstName = "Jane";  // This will give a compile-time error.

C# Başlatma Anahtarı (Geliştiriciler için Nasıl Çalışır): Şekil 1 - Özelliklerin sadece başlatma ile işaretlenmiş olması nedeniyle IDE hata veriyor

Bu örnekte, FirstName ve LastName sadece başlatma özelliği olarak işaretlenmiştir. Bu, nesne başlatılması sırasında yalnızca atanabilecekleri anlamına gelir. Nesne oluşturulduktan sonra değerleri değiştirme girişimi derleme zamanı hatasına neden olur.

Init Anahtar Kelimesini Niçin Kullanmalısınız?

Init anahtar kelimesini kullanmanın ana nedeni, nesne özelliklerini başlatma sonrasında değiştirilemez hale getirmektir. Gelenekselex olarak, özellikleri değiştirilemezlik için yalnızca okunabilir olarak işaretleyerek değişmezlik elde ederdiniz. Ancak, genellikle tüm gerekli değerleri alanlara ayarlamak için bir yapıcıya ihtiyaç duyardınız, bu da yapıcı hazırlık kodlarına neden olabilir. Init ile, uzun yapıcılar yazmadan, nesne başlatıcıları kullanarak aynı hedefe ulaşabilirsiniz.

public class Person
{
    public string FirstName { get; init; }
    public string LastName { get; init; }
    // Without using constructor boilerplate for property initialization
}

var person = new Person
{
    FirstName = "John",
    LastName = "Doe"
};

Init Yalnızca Özelliklerle Nesne Başlatma

Init, nesne başlatıcılarıyla sorunsuz bir şekilde çalışır. Değerleri ayarlamak için yapıcılara güvenmek yerine, bir nesne oluştururken ihtiyacınız olan özellikleri doğrudan tanımlayabilirsiniz.

public class Point
{
    public int X { get; init; }
    public int Y { get; init; }
}

var point = new Point { X = 10, Y = 20 };

// point.X = 30;  // This will throw a compile-time error

Bu, Point türünde basit, değişmez bir nesne oluşturur. X ve Y değerlerinin başlatma sırasında ayarlandığına ve daha sonra değiştirilemeyeceğine dikkat edin.

Init ile Yapıcılara Karıştırmak

Init için ana kullanım durumu nesne başlatma yoluyla nesne başlatıcıları olsa da, gerekirse bir yapıcı da kullanabilirsiniz. Bu, nesne oluşturma sırasında belirli özellik değerlerini zorlamak istediğinizde özellikle yararlıdır.

public class Person
{
    public string FirstName { get; init; }
    public string LastName { get; init; }

    public Person(string firstName, string lastName)
    {
        FirstName = firstName;
        LastName = lastName;
    }
}

Hem yapıcıları hem de init özelliklerini birlikte kullanabilirsiniz. Bu yaklaşım, nesne yapımından sonra değişmezliği zorlamaya devam ederken daha fazla esneklik sunar.

Özel Set Üzerine Init Faydaları

Önceden, geliştiriciler sınıf dışındaki mülk değişikliklerini sınırlamak için özel bir set alıcısı kullanırdı.

public class Person
{
    public string FirstName { get; private set; }
    public string LastName { get; private set; }

    public Person(string firstName, string lastName)
    {
        FirstName = firstName;
        LastName = lastName;
    }
}

Bu yaklaşım çalışsa da, özellikleri başlatmak için yapıcı hazırlık kodlarını gerektirir. Ayrıca, sınıfın kendisinin mülkleri daha sonra değiştirmesine izin verir, bu da değişmez nesneler için her zaman ideal değildir. Init anahtar kelimesi, bu sorunu ortadan kaldırır, çünkü yalnızca nesne oluşturma zamanında başlatmaya izin verir ve sonrasında herhangi bir değişikliği engeller.

Yalnızca Okunabilir Alanlarla ve Init Erişimcileriyle Başlatma Çalıştırması

Init anahtar kelimesi, alanları veya özellikleri nesne oluşturma sırasında başlatarak, sonrasında değiştirilemez kalırken başlatılmasını sağlayabilir. Değiştirilemezlik sağlamak için yalnızca okunabilir alanlar sağlarken, init alıcısı özellikler için benzer bir yetenek sunar. İki şekilde değişmezliği nasıl yönlendireceğiniz burada: yalnızca okunabilir alanlar ve init özellikleri kullanarak.

Bir Yapıcı ile Yalnızca Okunabilir Alanları Kullanma

Bu örnekte, nesne yaratımı sırasında ayarlanan firstName ve lastName için yalnızca okuma alanlarını kullanıyoruz. Bu alanlar yapıcıda yalnızca bir kez atanabilir ve sonrasında değiştirilemez:

public class Person
{
    private readonly string firstName;
    private readonly string lastName;

    public string FirstName => firstName;
    public string LastName => lastName;

    public Person(string firstName, string lastName)
    {
        this.firstName = firstName;
        this.lastName = lastName;
    }
}

Başlatma için Init Erişimcileri Kullanma

Alternatif olarak, oluşturma sırasında başlatılabilen ancak daha sonra değiştirilemeyen yalnızca okunabilir özellikler oluşturmak için init alıcısını kullanabiliriz. Bu, yalnızca okunabilir alanlar ihtiyacını ortadan kaldırır ve daha modern bir sözdizimi sağlar:

public class Person
{
    public string FirstName { get; init; }
    public string LastName { get; init; }
}

IronPDF'ye Giriş

C# Başlatma Anahtarı (Geliştiriciler için Nasıl Çalışır): Şekil 2 - IronPDF: C# PDF Kütüphanesi

IronPDF, C# geliştiricileri için tasarlanmış güçlü bir PDF oluşturma ve manipülasyon kütüphanesidir. HTML, CSS, görüntüler ve diğer içerikleri PDF belgelerine dönüştürerek PDF'lerle çalışmayı basitleştirir. IronPDF, piksel mükemmel işleme, çok platformlu destek ve .NET projelerine kolay entegrasyon gibi özellikleri sayesinde, hızlı bir şekilde yüksek kaliteli PDF'ler oluşturması gereken geliştiriciler için idealdir. .NET Core, Framework ve Standard ile kullanılabilir ve Windows, Linux ve macOS gibi bir çok platformu destekler.

Durum: IronPDF'i C# Init Anahtar Kelimesi ile Kullanma

C# projesinde değişmez nesneler oluşturmak ve aynı zamanda PDF üretmek için, init anahtar kelimesini IronPDF ile birleştirebilirsiniz. Init anahtar kelimesi nesnenin başlatıldıktan sonraki bütünlüğünü sağlar, IronPDF ise veriyi işleyip o değişmez model üzerinden PDF üretir.

IronPDF'in projenizde doğru şekilde referans alındığından emin olun. Bunu NuGet üzerinden yükleyebilirsiniz:

PM > Install-Package IronPdf

İşte kod örneği:

using IronPdf;

public class Person
{
    public int Id { get; init; }
    public string FirstName { get; init; }
    public string LastName { get; init; }
}

public class PDFGenerator
{
    public static void CreatePersonPDF(Person person)
    {
        var htmlContent = $@"
        <html>
        <body>
            <h1>Person Information</h1>
            <p>ID: {person.Id}</p>
            <p>First Name: {person.FirstName}</p>
            <p>Last Name: {person.LastName}</p>
        </body>
        </html>";

        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs($"Person_{person.Id}.pdf");
    }
}

class Program
{
    static void Main(string[] args)
    {
        var person = new Person
        {
            Id = 1,
            FirstName = "Iron",
            LastName = "Dev"
        };

        PDFGenerator.CreatePersonPDF(person);
    }
}

Sonuç

C# Başlatma Anahtarı (Geliştiriciler için Nasıl Çalışır): Şekil 3 - IronPDF Lisanslama Sayfası

Özetlemek gerekirse, C# init anahtar kelimesi, nesne başlatma sırasında esneklik sunarak değişmez nesneler oluşturmanızı sağlar. Özel set alıcılarının daha temiz ve daha güvenli bir alternatifi olup, yapıcı hazırlık kodlarına olan ihtiyacı azaltır. Init anahtar kelimesini yalnızca okunabilir alanlar, yapılar ve doğrulama mantığı ile birleştirerek, okunabilirlikten veya esnekliği feda etmeden değişmezliği koruyan sağlam ve güvenli veri yapıları oluşturabilirsiniz. IronPDF, bir ücretsiz deneme sunar ve lisanslar $999 başlangıçtan itibaren. Bu, PDF'leri düzenleme, sıkıştırma ve güvence altına alma gibi tüm özelliklere erişim sağlar.

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