Altbilgi içeriğine atla
.NET YARDıM

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

C# switch ifadesi, çok sayıda if-else bloğuna daha düzenli ve okunabilir bir alternatif sunar. Bir değişkenin birkaç farklı değerden birini alabileceği ve değere bağlı olarak farklı kodları çalıştırmanız gerektiğinde avantajlıdır. Switch ifadesi, bir ifadeyi değerlendirir ve eşleşen değere göre kod yürütür, böylece kodunuzda karar verme sürecinin ayrılmaz bir parçası olur.

If-else yapıları basit koşullar veya kontroller için kullanışlı iken, switch case ifadeleri, özellikle tek bir değişkene veya desen eşleşme ifadesine dayanan daha karmaşık koşul kontrollerinde üstün gelir. If ifadelerine kıyasla daha temiz ve anlaşılır bir sözdizimi sağlarlar, bu da kod yazma ve bakım için önemlidir.

Switch Ifadesinin Temel İlkeleri

Switch İfadesi Nedir?

C#'da bir switch ifadesi, birçok kod yolundan birini çalıştırmak için kullanılan bir kontrol yapısıdır. Seçim, değer veya bir ifadeye dayanır. Özellikle birkaç farklı değere sahip olabilecek bir değişkenle uğraşırken, çoklu if-else koşulları kullanmanın verimli bir alternatifidir.

Sözdizimi

Bir switch ifadesinin temel sözdizimi basittir:

// Switch statement
switch (variable)
{
    case value1:
        // Code to execute if variable equals value1
        break;
    case value2:
        // Code to execute if variable equals value2
        break;
    // More cases as needed
    default:
        // Code to execute if variable doesn't match any case
        break;
}
// Switch statement
switch (variable)
{
    case value1:
        // Code to execute if variable equals value1
        break;
    case value2:
        // Code to execute if variable equals value2
        break;
    // More cases as needed
    default:
        // Code to execute if variable doesn't match any case
        break;
}
' Switch statement
Select Case variable
	Case value1
		' Code to execute if variable equals value1
	Case value2
		' Code to execute if variable equals value2
	' More cases as needed
	Case Else
		' Code to execute if variable doesn't match any case
End Select
$vbLabelText   $csharpLabel
  • switch (variable): Değerlendirilecek değişkeni veya ifadeyi belirtir.
  • case value1: Değişkeni kontrol ettiğiniz farklı değerler veya koşullardır.
  • break: Eşleşen bir durumu çalıştırdıktan sonra 'switch' bloğundan çıkmak için kullanılır.
  • default ifadesi: Hiçbir belirtilen durum değişkenle eşleşmezse bu blok çalışır.

Break İfadesini Anlamak

Switch yapısında break ifadesi önemlidir. Eşleşen koşul zaten karşılandığında yürütmenin sonraki duruma geçmesini önler. Her durum bloğu tipik olarak, yalnızca eşleşen durum altındaki kodun yürütülmesini sağlamak için bir break ifadesi ile sonlanır.

Switch İfadesi ve If-Else İfadelerinin Karşılaştırılması

If-else ifadesinin yapısı, bir koşulu kontrol etmeyi ve koşul doğruysa bir kod bloğu yürütmeyi içerirken, switch ifadeleri tek bir değişkeni veya ifadeyi birden fazla olası değerle karşılaştırır. Bu, birçok koşul veya durumu kontrol etmeniz gerektiğinde switch ifadesini daha kısa ve daha kolay okunabilir hale getirir.

Örnek: Switch İfadesi Kullanımı

int number = 3;
switch (number)
{
    case 1:
        Console.WriteLine("One");
        break;
    case 2:
        Console.WriteLine("Two");
        break;
    case 3:
        Console.WriteLine("Three");
        break;
    default:
        Console.WriteLine("Other Number"); // Print to console
        break;
}
int number = 3;
switch (number)
{
    case 1:
        Console.WriteLine("One");
        break;
    case 2:
        Console.WriteLine("Two");
        break;
    case 3:
        Console.WriteLine("Three");
        break;
    default:
        Console.WriteLine("Other Number"); // Print to console
        break;
}
Dim number As Integer = 3
Select Case number
	Case 1
		Console.WriteLine("One")
	Case 2
		Console.WriteLine("Two")
	Case 3
		Console.WriteLine("Three")
	Case Else
		Console.WriteLine("Other Number") ' Print to console
End Select
$vbLabelText   $csharpLabel

Bu örnekte, program çıktısı "Üç" olarak yazdıracaktır çünkü sayı durum 3 ile eşleşir.

Varsayılan Durumun Rolü

Switch Blokta Varsayılanı Anlamak

Bir switch ifadesinde varsayılan durum önemli bir rol oynar. Belirtilen durum etiketlerinin hiçbiri switch ifadesinin değeriyle eşleşmediği zaman çalıştırılan bir genel seçenek olarak hizmet eder. Opsiyonel olmasına rağmen, beklenmedik veya bilinmeyen değerleri ele almak için varsayılan bir durum eklemek iyi bir uygulamadır.

Varsayılan İfade Nasıl ve Ne Zaman Kullanılır

Varsayılan durum, belirli durumların hiçbirinin eşleşmemesi durumunda bir kod bloğu çalıştırmak istediğinizde kullanılır. Girdi ne olursa olsun, switch ifadesinin daima tanımlı bir davranışa sahip olmasını sağlar. Varsayılan durum default anahtar kelimesi kullanılarak bir iki nokta işareti ile açıklanır.

default:
    // Code to execute if no case matches
    break;
default:
    // Code to execute if no case matches
    break;
Case Else
	' Code to execute if no case matches
	break
$vbLabelText   $csharpLabel

Varsayılan durum switch bloğu içinde her yerde yer alabilir, ancak okunabilirlik için genellikle sona yerleştirilir.

Örnek: Varsayılan Durumlu Switch İfadesi

Haftanın bir gününü değerlendirdiğiniz bir senaryoyu düşünün:

int day = 5;
string dayName;
switch (day)
{
    case 1:
        dayName = "Monday";
        break;
    case 2:
        dayName = "Tuesday";
        break;
    case 3:
        dayName = "Wednesday";
        break;
    case 4:
        dayName = "Thursday";
        break;
    case 5:
        dayName = "Friday";
        break;
    case 6:
        dayName = "Saturday";
        break;
    case 7:
        dayName = "Sunday";
        break;
    default:
        dayName = "Invalid day";
        break;
}
Console.WriteLine(dayName);
int day = 5;
string dayName;
switch (day)
{
    case 1:
        dayName = "Monday";
        break;
    case 2:
        dayName = "Tuesday";
        break;
    case 3:
        dayName = "Wednesday";
        break;
    case 4:
        dayName = "Thursday";
        break;
    case 5:
        dayName = "Friday";
        break;
    case 6:
        dayName = "Saturday";
        break;
    case 7:
        dayName = "Sunday";
        break;
    default:
        dayName = "Invalid day";
        break;
}
Console.WriteLine(dayName);
Dim day As Integer = 5
Dim dayName As String
Select Case day
	Case 1
		dayName = "Monday"
	Case 2
		dayName = "Tuesday"
	Case 3
		dayName = "Wednesday"
	Case 4
		dayName = "Thursday"
	Case 5
		dayName = "Friday"
	Case 6
		dayName = "Saturday"
	Case 7
		dayName = "Sunday"
	Case Else
		dayName = "Invalid day"
End Select
Console.WriteLine(dayName)
$vbLabelText   $csharpLabel

Bu örnekte, day 1 ile 7 arasında olmayan bir değere sahipse, varsayılan durum çalıştırılır ve dayName 'Geçersiz gün' olarak ayarlanır.

Varsayılan Durum için En İyi Uygulamalar

  • Her Zaman Varsayılan Ekleyin: Tüm olası durumları kapsadığınıza inanıyor olsanız bile, öngörülemeyen değerleri ele almak için bir varsayılan durum ekleyin.
  • Anlamlı Eylemler: Varsayılan durumu, bir hata günlüğe kaydetme, varsayılan bir değer ayarlama veya bilinmeyen bir değeri kullanıcıya bildirme gibi anlamlı eylemler gerçekleştirmek için kullanın.

Gelişmiş Switch Özellikleri

C#'da Switch İfadelerine Giriş

C#'ın evrimi ile switch ifadeleri, birden çok koşullu dalın daha kısa ve ifadeli bir şekilde ele alındığı bir yol olarak tanıtıldı. Geleneksel switch ifadelerinin aksine, Switch ifadeleri bir değer döndürür ve daha sevimlidir, modern C# programlamasında onları güçlü bir araç haline getirir.

Switch İfadelerinin Sözdizimi

C#'da bir switch ifadesinin sözdizimi, switch case ifadesinin daha kompakt bir biçimidir. İşte temel bir yapı:

var result = variable switch
{
    value1 => result1,
    value2 => result2,
    _ => defaultResult
};
var result = variable switch
{
    value1 => result1,
    value2 => result2,
    _ => defaultResult
};
'INSTANT VB TODO TASK: The following 'switch expression' was not converted by Instant VB:
'var result = variable switch
'{
'	value1 => result1,
'	value2 => result2,
'	_ => defaultResult
'};
$vbLabelText   $csharpLabel

Altçizgi (_) sembolü, switch ifadelerinde varsayılan durumu temsil eder, geleneksel switch ifadelerindeki varsayılan blokla benzer şekilde çalışır.

Örnek: Switch İfadesi Kullanımı

Bir sıcaklık okumasını kategorize etmeniz gereken bir senaryoyu düşünün:

int temperature = 25;
string weatherDescription = temperature switch
{
    <= 0 => "Freezing",
    < 20 => "Cold",
    < 30 => "Mild",
    _ => "Hot"
};
Console.WriteLine(weatherDescription);
int temperature = 25;
string weatherDescription = temperature switch
{
    <= 0 => "Freezing",
    < 20 => "Cold",
    < 30 => "Mild",
    _ => "Hot"
};
Console.WriteLine(weatherDescription);
Dim temperature As Integer = 25
'INSTANT VB TODO TASK: The following 'switch expression' was not converted by Instant VB:
'string weatherDescription = temperature switch
'{
'	<= 0 => "Freezing",
'	< 20 => "Cold",
'	< 30 => "Mild",
'	_ => "Hot"
'};
Console.WriteLine(weatherDescription)
$vbLabelText   $csharpLabel

Bu örnekte, switch ifadesi sıcaklığı kısa bir şekilde kategorize eder, diğer durumlar tarafından eşleştirilmeyen herhangi bir senaryoyu kapsayan varsayılan durum (_) ile.

Desene Göre Switch İfadeleri ile Desen Eşlemesi

C#'daki switch ifadeleri desene göre eşleme yapmaya olanak tanır, bu da onları daha da esnek hale getirir. Türleri, değerleri veya hatta desenleri eşleştirebilirsiniz:

object obj = // some object;
string description = obj switch
{
    int i => $"Integer: {i}",
    string s => $"String: {s}",
    _ => "Unknown type"
};
object obj = // some object;
string description = obj switch
{
    int i => $"Integer: {i}",
    string s => $"String: {s}",
    _ => "Unknown type"
};
'INSTANT VB TODO TASK: The following 'switch expression' was not converted by Instant VB:
'object obj = string description = obj switch
'{
'	int i => $"Integer: {i}",
'	string s => $"String: {s}",
'	_ => "Unknown type"
'};
$vbLabelText   $csharpLabel

C# Switch İfadesi ve Switch İfadesi

  • C# Switch İfadesi: Geleneksel olarak bir değişkenin değeri temel alarak farklı kod bloklarını çalıştırmak için kullanılan. Her durum için bir break ifadesine ihtiyaç duyar.
  • Switch İfadesi: C# 8.0'da tanıtılan, bu daha kısa bir sözdizimi sağlar ve genellikle bir değer, bir koşula dayalı olarak döndürüldüğünde kullanılır.

C#'da Switch İfadelerini IronPDF ile Entegre Etme

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

IronPDF Özelliklerini Keşfedin, PDF belgelerini oluşturmak, düzenlemek ve üzerinde çalışmak için bir .NET PDF kütüphanesidir. C# switch ifadeleri veya ifadeleri ile birleştirildiğinde, belirli koşullara dayalı çeşitli PDF ile ilgili işlemleri ele almak için güçlü bir araç haline gelir. Bu entegrasyon, PDF içeriği veya meta verilerine dayalı karar verme gerektiren görevler için özellikle kullanışlıdır.

IronPDF'nin temel özelliği, HTML'yi stiller ve düzenler ile PDF'ye dönüştürmek ve bu düzenleri ve stilleri korumaktır. Bu, web içeriğinden, raporlar, faturalar ve belgeler dahil olmak üzere PDF oluşturmak için idealdir. HTML dosyaları, URL'ler ve HTML dizeleri tamamı 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");
    }
}
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");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim renderer = New ChromePdfRenderer()

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

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

		' 3. Convert URL to PDF
		Dim url = "http://ironpdf.com" ' Specify the URL
		Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
		pdfFromUrl.SaveAs("URLToPDF.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

Örnek: IronPDF ve Switch İfadeleri ile Koşullu Filigran Kullanımı

Belge sayfa sayısına bağlı olarak farklı filigranlar uygulamak istediğiniz bir PDF belgesi senaryosunu düşünün. Bunu bir C# switch ifadesi ile IronPDF kullanarak nasıl başarabilirsiniz:

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        IronPdf.License.LicenseKey = "Your-License-Code";
        PdfDocument pdf = PdfDocument.FromFile("sample.pdf");
        // Define different watermark HTML for each case
        string watermarkHtmlOnePage = "<div style='color:red;'>One Page Document</div>";
        string watermarkHtmlTwoPage = "<div style='color:blue;'>Two Page Document</div>";
        switch (pdf.PageCount)
        {
            case 1:
                // Apply watermark for one-page document
                pdf.ApplyWatermark(watermarkHtmlOnePage);
                break;
            case 2:
                // Apply watermark for two-page documents
                pdf.ApplyWatermark(watermarkHtmlTwoPage);
                break;
            default:
                // Apply a default watermark for other cases
                pdf.ApplyWatermark("<div style='color:green;'>Multiple Page Document</div>");
                break;
        }
        // Save the watermarked PDF
        pdf.SaveAs("watermarked.pdf");
    }
}
using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        IronPdf.License.LicenseKey = "Your-License-Code";
        PdfDocument pdf = PdfDocument.FromFile("sample.pdf");
        // Define different watermark HTML for each case
        string watermarkHtmlOnePage = "<div style='color:red;'>One Page Document</div>";
        string watermarkHtmlTwoPage = "<div style='color:blue;'>Two Page Document</div>";
        switch (pdf.PageCount)
        {
            case 1:
                // Apply watermark for one-page document
                pdf.ApplyWatermark(watermarkHtmlOnePage);
                break;
            case 2:
                // Apply watermark for two-page documents
                pdf.ApplyWatermark(watermarkHtmlTwoPage);
                break;
            default:
                // Apply a default watermark for other cases
                pdf.ApplyWatermark("<div style='color:green;'>Multiple Page Document</div>");
                break;
        }
        // Save the watermarked PDF
        pdf.SaveAs("watermarked.pdf");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		IronPdf.License.LicenseKey = "Your-License-Code"
		Dim pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")
		' Define different watermark HTML for each case
		Dim watermarkHtmlOnePage As String = "<div style='color:red;'>One Page Document</div>"
		Dim watermarkHtmlTwoPage As String = "<div style='color:blue;'>Two Page Document</div>"
		Select Case pdf.PageCount
			Case 1
				' Apply watermark for one-page document
				pdf.ApplyWatermark(watermarkHtmlOnePage)
			Case 2
				' Apply watermark for two-page documents
				pdf.ApplyWatermark(watermarkHtmlTwoPage)
			Case Else
				' Apply a default watermark for other cases
				pdf.ApplyWatermark("<div style='color:green;'>Multiple Page Document</div>")
		End Select
		' Save the watermarked PDF
		pdf.SaveAs("watermarked.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

İşte bir sayfalık çıktısı ile PDF dosyası:

C# Durum İfadesi (Geliştiriciler İçin Nasıl Çalışır): Şekil 2 - Çıktı

Sonuç

Bu öğreticide, programlamada karar verme sürecinin temel bir şekli olan switch case ifadesini C# içinde inceledik. Temel yapısını anlamakla başladık ve geleneksel if-else ifadeleriyle karşılaştırdık ve bu ifadelerin okunabilirlik ve çoklu koşullarla başa çıkma basitliği konusundaki avantajlarını vurguladık.

Basit switch durumları oluşturduk, varsayılan durum ile çeşitli senaryoları ele aldık ve switch ifadeleri gibi gelişmiş özellikleri keşfettik. Switch ifadelerinin gerçek dünya uygulaması, dinamik PDF işleme için IronPDF'i entegre eden bir örnekle gösterildi, switch ifadelerinin bir programcının araç kutusunda değerli bir araç olabileceğini gösterdi.

PDF işleme ihtiyaçlarınız için kapsamlı bir çözüm sağlayarak ücretsiz deneme için IronPDF fırsatını keşfedin, özelliklerini ve işlevlerini keşfetmenizi sağlar. Uzun vadeli kullanım ve araç takımının tam erişimi için, IronPDF lisansları rekabetçi bir fiyat modelinden başlayarak, C#'daki tüm PDF işleme ihtiyaçlarınız için kapsamlı bir çözüm sunar.

Sıkça Sorulan Sorular

C#'da PDF işlemlerini yönetmek için bir switch ifadesini nasıl kullanabilirim?

IronPDF gibi bir kütüphane kullanarak sayfa sayısı veya belge türü gibi koşullara dayanarak farklı PDF işlemlerini yürütmek için bir switch ifadesi kullanabilirsiniz.

C#'da switch ifadesi ile switch ifadelerinin arasındaki fark nedir?

Switch ifadesi, birden fazla koşulu kesintilerle yönetmek için yapılandırılmış bir yol sunarken, switch ifadesi daha kısa, bir değer döndürür ve kesintilere gerek kalmadan kullanılır.

C# switch ifadelerinde varsayılan durum neden önemlidir?

Varsayılan durum, beklenmedik değerlerin nazik bir şekilde yönetilmesini sağlar, ifadenin hiçbir durumla eşleşmediğinde geri dönüş eylemi sağlar ve hataları önler.

C#'da switch ifadeleri kod okunabilirliğini nasıl artırır?

Switch ifadeleri, koşullu dallanma için özlü bir sözdizimi sunarak kod okunabilirliğini artırır. Geliştiricilerin mantığı daha kompakt bir biçimde ifade etmesine olanak tanır; bu da kodun anlaşılmasını ve bakımını kolaylaştırır.

C# uygulamalarında hata yönetimi için switch ifadeleri kullanılabilir mi?

Evet, switch ifadeleri hata yönetimi için kullanılabilir ve hata kodlarına veya koşullara dayalı olarak belirli hata yönetimi rutinlerine yönlendirerek C# uygulamalarının sağlamlığını artırır.

IronPDF ile switch ifadesinin pratik bir örneği nedir?

Pratik bir örnek, sayfa sayısı veya diğer kriterlere dayalı olarak bir PDF belgesine farklı filigranlar uygulamak için bir switch ifadesi kullanmaktır; bu, PDF manipülasyon görevleri için IronPDF'nin avantajlarından yararlanarak yapılır.

IronPDF, switch tabanlı PDF işlemlerini nasıl kolaylaştırır?

IronPDF, PDF'leri dönüştürme, düzenleme ve oluşturma işlemleri için koşullu olarak tetiklenebilecek sağlam bir araç ve yöntem seti sunarak switch tabanlı PDF işlemlerini kolaylaştırır.

PDF işlemede switch ifadelerinin yaygın kullanım senaryoları nelerdir?

Yaygın kullanım senaryoları arasında belgenin türü veya içeriğine bağlı olarak belirli biçimlendirme veya dönüşümler uygulamak gibi belge meta verilerine dayalı olarak farklı işleme kuralları uygulamak yer alır.

IronPDF, switch ifadeleriyle okunabilir ve bakım yapılabilir kod oluşturulmasına nasıl yardımcı olur?

IronPDF, switch ifadeleri kullanılarak düzenlenebilecek kapsamlı PDF manipülasyon yöntemleri sunarak, yapılandırılmış mantığı sayesinde okunabilir ve bakım yapılabilir kod oluşturulmasına yardımcı olur.

Switch ifadeleri karar vermede, if-else bloklarına göre ne gibi avantajlar sunar?

Switch ifadeleri, birden çok ayrık koşulu işlemek için daha organize ve daha az hata eğilimli bir yapı sunar, bu da kodun netliğini artırır ve uzun if-else zincirlerine göre hata olasılığını azaltır.

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Chief Technology Officer

Jacob Mellor, Iron Software'in Teknoloji Müdürü ve C# PDF teknolojisinin öncüsü olan vizyoner bir mühendis. Iron Software’in temel kod tabanının ilk geliştiricisi olarak, şirketin ürün mimarisini kuruluşundan bu yana şekillendirdi ve CEO Cameron Rimington ile birlikte NASA, Tesla ve ...

Daha Fazlasını Oku

Iron Destek Ekibi

Haftanın 5 günü, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara