IRONSOFTWAREHOME
GELIŞTIRICI GÜNCELLEMELERI

C# Const (Geliştiriciler için Nasıl Çalışır)

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

C#'ta, const anahtar kelimesi, derleme zamanında bilinen sabit alanlar veya değerler tanımlamak için güçlü bir araçtır. Bu değerler değişmezdir, yani bir kez ayarlandığında, program boyunca değerlerinin değiştirilemez. const kullanmak, değişmez kalması gereken değerler için net bir gösterim sunarak kodunuzu daha okunabilir ve sürdürülebilir hale getirebilir. Bu makalede, const anahtar kelimesi ve IronPDF kütüphanesi üzerine konuşacağız.

Sabit Değişken Tanımlama

Bir sabit değişken tanımlamak için const anahtar kelimesini bir veri türü ile kullanırız ve ardından hemen başlatılır. Örneğin, const int myConstValue = 100; bir tamsayı sabiti tanımlar. Bir sabit değişkenin, tanımlandığında başlatılması gerektiğini unutmamak önemlidir, çünkü değeri derleme zamanında olmalı ve program çalıştırılmadan önce tamamen değerlendirilmiş olmalıdır.

public class Program
{
    public const int MaxSize = 10;

    static void Main(string[] args)
    {
        Console.WriteLine(MaxSize);
    }
}

C# Const (Geliştiriciler İçin Nasıl Çalışır): Şekil 1 - Const Çıktısı

Bu örnek, bir sınıf içinde sabit tamsayı (const int) kullanımını basit bir şekilde gösterir. MaxSize sabiti, aynı sınıf içerisinde erişilebilir ve doğrudan static void Main yönteminde kullanılabilir.

const ve readonly Değişkenler

Hem const hem de readonly anahtar kelimeleri değişmez değerler tanımlamak için kullanılsa da, aralarında önemli farklılıklar vardır. const bir alan, derleme zamanı sabiti olup, değeri derleme zamanında belirlenir ve doğrudan Ara Dil (IL) koduna gömülür. Bu, onu statik yapar ve değiştirilemez.

Öte yandan, bir readonly değişken, sınıfın constructor'ı içinde ya da tanımlandığı anda atanabilir. Bu, readonly alanın sınıfın oluşturulduğu constructor'a bağlı olarak farklı değerlere sahip olabileceği için bir esneklik sağlar.

public class Program
{
    public const string ConstExample = "Constant"; // const string
    public readonly string ReadonlyExample;

    public Program()
    {
        ReadonlyExample = "Initialized at runtime";
    }

    static void Main(string[] args)
    {
        Program p = new Program();
        Console.WriteLine(ConstExample);
        Console.WriteLine(p.ReadonlyExample);
    }
}

C# Const (Geliştiriciler İçin Nasıl Çalışır): Şekil 2 - Sadece Okunur Alan Çıktısı

const Değişkenlerin Kapsamı

Sabit değişkenler, bir yöntemin içinde veya bir sınıfın üyesi olarak tanımlanabilir. Bir const değişkeni bir yöntem içinde tanımladığınızda, bu yerel bir sabit olarak bilinir. Yerel sabitler, yalnızca tanımlandıkları yöntem içinde erişilebilir.

public class Program
{
    static void DemoMethod()
    {
        const int LocalConst = 5; // local constant
        Console.WriteLine(LocalConst);
    }
}

C# Const (Geliştiriciler İçin Nasıl Çalışır): Şekil 3 - Yerel Sabit Çıktısı

Buna karşılık, bir const bir sınıf içinde ama herhangi bir yöntem dışında tanımlandığında, aynı sınıfın herhangi bir statik fonksiyonundan erişilebilir, çünkü const alanlar örtük olarak statiktir. Ancak, bir örnek yöntemde bir const alana sınıf adı üzerinden referans vermeden erişme girişimi, bir derleme hatasına neden olur.

Derleme Zamanı ve Çalışma Zamanı Sabitleri

const değerlerin ana özelliği, derleme zamanında değerlendirilmiş olmalarıdır. Bu, const alanın değerinin derleyici tarafından bilinmesi ve tamamen değerlendirilmiş olması gerektiğini ifade eder. Bu, çalışma zamanında değerlendirilen ve değerleri programın yürütülmesi sırasında belirlenen değişkenlerle zıttır.

Örneğin, çalışma zamanında yapılan bir hesaplamaya dayalı olarak bir const alana değer atamaya çalışmak, derleme zamanı hatasına neden olur. Derleyici, const değerlerin belirli derleme zamanında bilinen sabit ifade veya sabit değerlerden atanmasını gerektirir.

const double Pi = Math.PI; // This will cause a compile time error

Advanced Use of Constants and Static Members in C#

C#'ta const ve readonly temellerinin ötesine geçerek, sabit ifadeler, statik yapıcılar ve statik alanlar ile çalışmayı anlamak, özellikle bir sınıfın örnekleri arasında paylaşılması gereken sabit değerlerle uğraşırken, kodlama uygulamalarınızı yükseltebilir.

Sabit İfadeler

C#'ta bir sabit ifade, derleme zamanında tamamen değerlendirilebilen bir ifadedir. Bu nedenle, bir const değişkeni tanımladığınızda, bildiriminin sağ tarafı bir sabit ifade olmalıdır. Bu, const değerinin sabit olduğunu ve doğrudan derlenmiş koda gömülebileceğini, bu da son derece optimize edilmiş ve verimli uygulamalara yol açar.

public class Calculator
{
    public const int Multiplier = 2;
    public const int DoubleMultiplier = Multiplier * 2; // Constant expression
}

Bu örnekte, DoubleMultiplier, başka bir sabit değer kullanılarak hesaplandığı için derleme zamanı sabiti olmaya uygun olan bir sabit ifadedir.

Statik Yapıcı

C#'ta statik yapıcı, sınıfın statik alanlarını başlatan özel bir yapıcıdır. İlk örnek oluşturulmadan önce ya da herhangi bir statik üye referans verilmeden otomatik olarak çağrılır. Statik yapıcılar, statik verilerin karmaşık başlatılması veya tür başına bir kez yapılması gereken eylemler için yararlıdır, örneğin her örnek başına değil.

public class Program
{
    public static readonly string StartTime;

    static Program()
    {
        StartTime = DateTime.Now.ToString("T");
    }

    public static void DisplayStartTime()
    {
        Console.WriteLine($"Program started at: {StartTime}");
    }
}

Statik yapıcı, StartTime alanını mevcut saatle başlatır. Bu değer, DisplayStartTime statik yöntemi aracılığıyla erişilebilir ve bu, çalışma zamanı sırasında bilinmeyen değerlerle readonly alanlarının nasıl başlatılabileceğini gösterir.

Statik Alanlar ve readonly ve static Anahtar Kelimeleri

Statik alanlar, sınıfa aittir ve sınıfın herhangi bir örneğine ait değildir ve static anahtar kelimesiyle tanımlanır. readonly anahtar kelimesiyle birleştirildiğinde, bir statik alan ya @@@@@tanımlama noktasında ya da statik yapıcı içinde başlatılabilir ve daha sonrasında değiştirilemez.

public class Configuration
{
    public static readonly int MaxUsers;
    public const int TimeoutSeconds = 30;

    static Configuration()
    {
        MaxUsers = FetchMaxUsersFromConfig();
    }

    private static int FetchMaxUsersFromConfig()
    {
        // Imagine this method reads from a configuration file
        return 100;
    }
}

Bu örnek, statik bir yapılandırıcı kullanılarak bir readonly statik alanı, MaxUsers, çalışma zamanında (muhtemelen bir yapılandırma dosyasından) elde edilen bir değerle başlatan bir yapılandırıcının kullanımı gösterir. const alanı, TimeoutSeconds, doğrudan koda gömülen derleme zamanı sabitini temsil eder.

IronPDF'ye Giriş

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

IronPDF, geliştiricilerin .NET uygulamalarında PDF belgeleri oluşturmasına, düzenlemesine ve okumasına olanak tanıyan çok yönlü bir kütüphanedir. Bu güçlü araç, PDF oluşturmayı kolaylaştırarak geliştiricilere, HTML'yi PDF'ye dönüştürmeye, içeriklerini manipüle etmeye ve PDF dosyalarından veri çıkarmaya olanak tanır.

IronPDF'in gücü, HTML'yi PDF'ye dönüştürmede yer almakta olup, hem düzeni hem de stili korur. Raporlar, faturalar ve belgeler gibi web içeriklerinden PDF oluşturmak için ideal bir araçtır. HTML dosyaları, URL'ler ve HTML dizeleri kolayca PDF dosyalarına dönüştürülebilir.

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");
    }
}

IronPDF'e Başlarken ve const Örneği

IronPDF'in bir .NET projesine nasıl entegre edilebileceğini göstermek için, bir PDF belgeye dönüştürmeyi istediğimiz HTML dizisini bir sabit olarak tanımladığımız basit bir örneğe bakalım.

using IronPdf;

public class PdfGenerator
{
    // Defining a constant HTML template
    public const string HtmlTemplate = @"
        <html>
            <head>
                <title>PDF Report</title>
            </head>
            <body>
                <h1>IronPDF Report</h1>
                <p>This is a simple PDF document generated from HTML string using IronPDF.</p>
            </body>
        </html>";

    public static void CreatePdf(string filePath)
    {
        IronPdf.License.LicenseKey = "License";

        // Create a new PDF document from HTML template
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(HtmlTemplate);

        // Save the PDF document to a file
        pdf.SaveAs(filePath);
        Console.WriteLine($"PDF generated successfully at {filePath}");
    }
}

class Program
{
    static void Main(string[] args)
    {
        PdfGenerator.CreatePdf("example.pdf");
    }
}

Bu örnekte, HtmlTemplate sabiti, PDF belgemizin kaynağı olarak hizmet eden basit HTML içeriği ile tanımlanmıştır. CreatePdf yöntemi, bu HTML'yi bir PDF'ye dönüştürmek ve belirtilen dosya yoluna kaydetmek için IronPDF'in ChromePdfRenderer sınıfını kullanır. Bu, IronPDF'in statik HTML içerikten PDF'ler oluşturmak için ne kadar kolay kullanılabileceğini, değişmez HTML şablonlarını tanımlamak için const anahtar kelimesinin nasıl kullanılabileceğini gösterir.

Çıktı

İşte Çıktı PDF Dosyası:

C# Const (Geliştiriciler İçin Nasıl Çalışır): Şekil 5 - PDF Çıktısı

Sonuç

C#'ta, const anahtar kelimesi, derleme zamanında bilinen değişmez değerler tanımlamak için değerli bir özelliktir. Hangi değerlerin sabit olduğunu açıkça göstererek kodunuzun okunabilirliğini ve sürdürülebilirliğini artırır. Unutmayın, const değişkenler örtük olarak statiktir, tanımında başlatılmalı ve değerleri derleme zamanı sabiti olmalıdır. Karşılaştırıldığında, readonly değişkenler daha fazla esneklik sunar ancak çalışma zamanında başlatılır.

IronPDF, PDF manipülasyonundaki sağlam özelliklerinin yanı sıra, esnek benimseme modeliyle de öne çıkmaktadır. Kabiliyetlerini keşfetmek isteyen geliştirici ve organizasyonlar için, IronPDF, özelliklerini ve entegrasyon kolaylığını ilk yatırım yapmadan değerlendirme fırsatı sunan bir ücretsiz deneme sunar.

IronPDF ile ticari kullanım için ilerlemeye hazır olduğunuzda, lisanslama seçenekleri $999 ile başlar. Bu fiyatlandırma yapısı, farklı proje boyutları ve türlerinin ihtiyaçlarını karşılamak amacıyla tasarlanmıştır ve geliştirmeniz ve dağıtım planlarınıza en uygun lisansı seçebilmenizi 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