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

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

Bu derste, C# Action, Func delegate ve ilgili konuların kavramlarını öğreteceğiz. Bu kılavuz, başlangıç seviyesindekiler için tasarlanmıştır ve sizi temellerden geçirecek, örnekler sunacak ve action delegate anahtar terimlerini açıklayacaktır.

C#'ta delegelerin ne olduğunu anlayarak başlayalım. Makalede daha sonra IronPDF kütüphanesini keşfedeceğiz.

C# Temsilcilerini Anlamak

Temsilciler, belirli bir parametre seti ve dönüş türü ile tanımlanan ve önceden tanımlanmış temsilci tipi gibi işlevleri kapsayan, metodlara referanslar olarak hizmet eden bir programlama yapısıdır.

Metodların argüman olarak aktarılmasına izin verir. Özünde, bir temsilci, temsil ettiği metodu gösteren bir işlev işaretçisi olarak hizmet eder. C#'ta, yaygın olarak kullanılan iki önceden tanımlanmış temsilci türü vardır: Func ve Action.

Func Delegesi Nedir?

Func delegesi, bir dönüş değerine sahip olabilecek bir metodu temsil eder. Son tür parametresi dönüş türünü belirtir ve önceki türler giriş parametrelerini belirtir.

Örneğin, bir Func<int, int, string> iki tamsayı parametre alır ve bir dize mesajı döndürür.

Temsilcilerin Uygulamada Kullanımı: Örnekler

Func ve Action delegelerinin C#'ta nasıl çalıştığını anlamak için bazı örneklere bir göz atalım.

Action Delegesi Örneği

Bir Action delegesi, belirli bir değeri geri döndürmeyen, bunun yerine işlemler üzerinde odaklanan bir metodu icra etmek istediğinizde kullanılan, önceden tanımlanmış bir temsilci türüdür. İşte temel bir örnek:

Action<string> display = message => Console.WriteLine(message);
display("Hello, World!");
Action<string> display = message => Console.WriteLine(message);
display("Hello, World!");
Dim display As Action(Of String) = Sub(message) Console.WriteLine(message)
display("Hello, World!")
$vbLabelText   $csharpLabel

Bu kod, bir anonymous method (anonim metot) kullanarak, tek bir dize parametresi alan ve bunu konsola yazdıran bir Action delegesi tanımlar. => sembolü, anonim metodları yazmak için kısa bir yol olan lambda ifadesini tanımlamak için kullanılır.

Func Delegesi Örneği

Bir Func delegesi, bir değer döndüren, aşağıdaki gibi kullanılabilen bir delegedir:

Func<int, int, int> add = (x, y) => x + y;
int result = add(5, 3);
Console.WriteLine(result);
Func<int, int, int> add = (x, y) => x + y;
int result = add(5, 3);
Console.WriteLine(result);
Dim add As Func(Of Integer, Integer, Integer) = Function(x, y) x + y
Dim result As Integer = add(5, 3)
Console.WriteLine(result)
$vbLabelText   $csharpLabel

Bu örnek, iki tamsayı parametresi alan ve bunların toplamını döndüren bir Func delegesi oluşturur. Toplam, konsolda şöyle gösterilecektir:

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

Anahtar Kavramlar

Anonim Metodlar

C#'taki anonim metodlar, isim vermeden yerinde metodlar tanımlamanın bir yolunu sunar. Genellikle temsilcilerle birlikte doğrudan temsilci örnekleri oluşturmak için kullanılırlar.

Lambda İfadeleri

Lambda ifadeleri, anonim metodların yazılması için kısa bir yöntemdir. Aynı sonuca ulaşmak için daha az kod yazmanıza olanak tanır.

Genel Temsilci

Bir genel temsilci, herhangi bir veri türü ile çalışabilir. Func ve Action, giriş ve çıkış türlerini çalışma zamanında belirtmenize izin vererek daha fazla esneklik sağlayan genel temsilci örnekleridir.

Temsilci Örneği

Bir temsilci örneği, new anahtar kelimesi ile veya temsilcinin imzasına uyan bir metoda basitçe atama yapılarak oluşturulur.

System Ad Alanı

.NET'teki System ad alanı, Func ve Action gibi yerleşik türleri, temel sınıf kütüphanesinin bir parçası olarak içerir.

Temsilcilerle Asenkron Programlama

Action ve Func dahil olmak üzere temsilciler, C#'ta asenkron görevleri yönetmek için çok önemlidir. Geliştiricilerin, daha sonra asenkron olarak icra edilebilecek bir metoda referans kapsüllemelerine olanak tanır. Bu, ana uygulama iş parçacığının bir görevi başlatabileceği ve ardından görev tamamlanana kadar başka işler yapmasına olanak tanır.

Bu noktada, bir geri çağırma metodu, bir temsilci tarafından referans alınarak çağrılır ve sonucu ele alır. Bu desen, uzun süre çalışan işlemler gerçekleştirirken bile etkileşimli kalabilen duyarlı kullanıcı arayüzleri oluşturmak için hayati önem taşır.

Örnek: Asenkron Dosya İşleme

Büyük bir dosyayı işlemesi gereken bir uygulamayı düşünün. Task gibi asenkron programlama desenleriyle birlikte bir Action delegesi kullanmak, uygulama performansını önemli ölçüde artırabilir:

public async Task ProcessFileAsync(string filePath, Action<string> onComplete)
{
    // Asynchronously read file content
    string fileContent = await File.ReadAllTextAsync(filePath);
    // Process the file content here (omitted for brevity)

    // Once processing is complete, invoke the onComplete callback
    onComplete?.Invoke("File processing completed successfully.");
}
public async Task ProcessFileAsync(string filePath, Action<string> onComplete)
{
    // Asynchronously read file content
    string fileContent = await File.ReadAllTextAsync(filePath);
    // Process the file content here (omitted for brevity)

    // Once processing is complete, invoke the onComplete callback
    onComplete?.Invoke("File processing completed successfully.");
}
Public Async Function ProcessFileAsync(ByVal filePath As String, ByVal onComplete As Action(Of String)) As Task
	' Asynchronously read file content
	Dim fileContent As String = Await File.ReadAllTextAsync(filePath)
	' Process the file content here (omitted for brevity)

	' Once processing is complete, invoke the onComplete callback
	If onComplete IsNot Nothing Then
		onComplete.Invoke("File processing completed successfully.")
	End If
End Function
$vbLabelText   $csharpLabel

Bu örnekte, File.ReadAllTextAsync, ana iş parçacığını engellemeden dosya içeriğini okumak için kullanılır. Dosya işlendiğinde, işlemin tamamlandığını bildirmek için onComplete adlı bir Action delegesi çağrılır, böylece UI'ı güncellemek veya sonuçları kaydetmek gibi daha ileri eylemler sağlar.

IronPDF Tanıtımı: Bir C# PDF Kütüphanesi

IronPDF, PDF dosyalarını kolayca oluşturmak, düzenlemek ve manipüle etmek için .NET geliştiricilerine yönelik kapsamlı bir C# PDF kütüphanesidir. HTML içeriğinden, CSS'den, JavaScript'den ve görüntülerden piksel mükemmelliğinde PDF'ler sağlamak için Chrome tabanlı bir render motoru ile kendini ayırt eder.

IronPDF, .NET Standard, .NET Framework ve .NET Core dahil olmak üzere çeşitli .NET çerçeveleri ve ortamları ile uyumludur, Windows, Linux ve macOS platformlarında çalışır.

Installing IronPDF

IronPDF'i .NET projelerinize dahil etmek için kullanılabilecek en basit yöntem NuGet kullanmaktır. Visual Studio'da Paket Yöneticisi Konsolu'nu açarak ve aşağıdaki komutu çalıştırarak başlayabilirsiniz:

Install-Package IronPdf

Bu komut, IronPDF paketini alır ve kurar, böylece projeniz IronPDF'i PDF oluşturma ve manipülasyonu için kullanmaya hazır hale gelir.

Action Delegesi ile Kod Örneği

IronPDF'i bir Action delegesi ile birlikte bir PDF oluşturma görevi gerçekleştirmek için kullanmaya ilişkin basit bir örnek:

using IronPdf;
using System;

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

        // Define an Action delegate that takes HTML content as a string
        Action<string> generatePdf = html =>
        {
            // Render the HTML as a PDF
            var pdf = renderer.RenderHtmlAsPdf(html);

            // Save the PDF to a file
            pdf.SaveAs("example.pdf");
        };

        // Generate the PDF with the provided HTML
        generatePdf("<p>Hello, world!</p>");
        Console.WriteLine("PDF generated successfully.");
    }
}
using IronPdf;
using System;

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

        // Define an Action delegate that takes HTML content as a string
        Action<string> generatePdf = html =>
        {
            // Render the HTML as a PDF
            var pdf = renderer.RenderHtmlAsPdf(html);

            // Save the PDF to a file
            pdf.SaveAs("example.pdf");
        };

        // Generate the PDF with the provided HTML
        generatePdf("<p>Hello, world!</p>");
        Console.WriteLine("PDF generated successfully.");
    }
}
Imports IronPdf
Imports System

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

		' Define an Action delegate that takes HTML content as a string
		Dim generatePdf As Action(Of String) = Sub(html)
			' Render the HTML as a PDF
			Dim pdf = renderer.RenderHtmlAsPdf(html)

			' Save the PDF to a file
			pdf.SaveAs("example.pdf")
		End Sub

		' Generate the PDF with the provided HTML
		generatePdf("<p>Hello, world!</p>")
		Console.WriteLine("PDF generated successfully.")
	End Sub
End Class
$vbLabelText   $csharpLabel

Bu örnek, bir HTML dizgisi alarak ve onu bir PDF belgesine dönüştürmek için IronPDF'i kullanan bir Action delegesi tanımlar. Oluşturulan PDF daha sonra dosya sistemine kaydedilir. Bu yaklaşım, kodunuzu daha modüler ve esnek hale getirerek, temsilcilerin PDF oluşturma mantığını kapsüllemek için nasıl kullanılabileceğini gösterir.

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

Lisanslama

C# Eylem (Geliştiriciler İçin Nasıl Çalışır): Şekil 3

IronPDF, geliştiriciler için çeşitli lisanslama seçenekleri sunar, bireysel geliştirici lisanslarından kurumsal anlaşmalara kadar. Bu lisansların fiyatları $999'den başlamaktadır.

Sonuç

Şimdiye kadar, C#'ta Action ve Func delegeleri ile anonim metot ve lambda ifadelerini kullanma hakkında temel bir anlayışa sahip olmalısınız. Unutmayın, temsilci kavramlarını ustalaşmak için practice gereklidir. Kendi örneklerinizi oluşturarak temsilcileri tanımlayın, atayın ve çağırın.

IronPDF'in yeteneklerini ücretsiz deneme sürümü ile özgürce keşfedebilirsiniz. Proje gereksinimlerinize uygunsa, fiyatlar $999'ten başlayan bir lisans elde edebilirsiniz.

Sıkça Sorulan Sorular

C# Action temsilcisi nedir?

C# içindeki bir Action temsilcisi, bir değer döndürmeyen bir yöntemi çalıştırmak için kullanılan önceden tanımlanmış bir temsilci türüdür. Yaygın olarak bir sonuç döndürülmesi gerekmediğinde işlemler için kullanılır.

C# içinde bir Func temsilcisi nasıl kullanırım?

Bir Func temsilcisi, değer döndüren bir yöntemi kapsüllemek için kullanılır. Dönüş türünü son parametre olarak belirlersiniz. Hesaplanmış bir sonucu döndürmeniz gereken yöntemler için kullanışlıdır.

Func ve Action temsilcileri arasındaki fark nedir?

Başlıca fark, bir Func temsilcisinin bir değer döndürmesi, bir Action temsilcisinin ise döndürmemesidir. Func, yöntemin bir sonuç döndürmesi gerektiğinde kullanılırken, Action bir değer döndürmeyen işlemler içindir.

C# uygulamasında nasıl bir PDF oluşturabilirim?

C# uygulamanızda IronPDF kullanarak bir PDF oluşturabilirsiniz. PDF'leri Chrome tabanlı bir render motoruyla oluşturmanıza izin verir ve .NET uygulamalarına temsilciler kullanarak entegre edilebilir.

C#'da lambda ifadeleri nedir ve bunlar temsilcilerle nasıl ilişkilidir?

Lambda ifadeleri, satır içi yöntemler yazmanın özlü bir yoludur ve genellikle kodu basitleştirmek için temsilcilerle kullanılırlar. Yöntemleri özlü şekilde ifade etmenizi sağlarlar ve sıkça Action ve Func temsilcileriyle kullanılırlar.

C# kullanarak temsilcilerle eşzamanlı olmayan görevleri nasıl yönetebilirim?

Action ve Func gibi temsilciler, eşzamanlı olarak yürütülen yöntemleri kapsüllemek için kullanılabilir. Bu yaklaşım, görevlerin tamamlanmasını beklerken uygulamanızın diğer işlemleri gerçekleştirmesine olanak tanıyarak performansı ve duyarlılığı artırır.

.NET projesinde PDF oluşturma için bir C# kütüphanesi nasıl kurulur?

IronPDF gibi bir kütüphaneyi .NET projenize kurmak için, Paket Yöneticisi Konsolunda NuGet kullanabilirsiniz: Install-Package IronPdf komutuyla. Bu, projenizi PDF oluşturma ve düzenleme için hazırlar.

C#'da anonim yöntemler nelerdir?

Anonim yöntemler, adlandırılmayan satır içi yöntemler tanımlamanıza izin verir ve genellikle doğrudan temsilci örnekleri oluşturmak için temsilcilerle kullanılırlar. Kod bloklarını parametre olarak geçmenin bir yolunu sağlarlar.

C# dilinde jenerik bir temsilci nedir?

Jenerik temsilciler, herhangi bir veri tipini kullanabilen temsilcilerdir. Func ve Action, jenerik temsilcilere örnek olarak gösterilebilir, çünkü giriş ve çıkış parametrelerinin türlerini çalışma zamanında tanımlamanıza izin verirler.

.NET içindeki System ad alanı nedir ve önemi nedir?

.NET'teki System ad alanı, Func ve Action gibi temel sınıf kitaplığının bir parçası olup, C# uygulamaları geliştirmek için gereken temel işlevleri sağlayan önemli türleri ve sınıfları içerir.

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 ...

Daha Fazla Oku

Iron Destek Ekibi

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