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

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

Bu derste, C# Action, Func temsilci, ve ilgili konuların kavramlarını öğreteceğiz. Bu kılavuz, acemiler için tasarlanmıştır ve temel bilgileri, örnekleri sağlayacak ve action temsilci anahtar terimlerini açıklayacaktır.

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

C#'ta Delegeleri Anlamak

Delegeler, belirli bir dizi parametre ve geri dönüş türüne göre tanımlanan, yöntemlere referanslar olarak işlev gören bir programlama yapısıdır, önceden tanımlanmış temsilci türü gibi işlevsellikleri kapsar ve yöntemlerin değer döndürmesine izin verir.

Yöntemlerin argüman olarak geçirilmesine olanak tanır. Temel olarak, bir temsilci, temsil ettiği yöntemi işaret eden bir işlev işaretçisi olarak işlev görür. C#'ta, yaygın olarak kullanılan iki önceden tanımlı temsilci türü vardır: Func ve Action.

Func Temsilci Nedir?

Func temsilci, bir dönüş değeri olan bir yöntemi 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ı parametresi alır ve bir dizi mesajı döndürür.

Uygulamada Delegeler: Örnekler

C#'ta Func ve Action temsilcilerinin nasıl çalıştığını anlamak için bazı örneklere bakalım.

Bir Action Temsilci Örneği

Önceden tanımlanmış bir temsilci türü olan Action temsilci, özellikle bir değer döndürmeyen, operasyonlara odaklanan bir yöntemi yürütmek istediğinizde kullanılır. İşte basit 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, anonim bir yöntemin kullanımını resmeden bir Action temsilci tanımlar, ve tek bir dize parametresi alır ve bunu konsola yazdırır. => sembolü, anonim yöntemleri yazmanın özlü bir yolu olan bir lambda ifadesini tanımlamak için kullanılır.

Bir Func Delege Orneġi

Func delege, bir değer donduren bir delege olarak su sekilde kullanilabilir:

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 tamsayi parametresi alan ve bunlarin toplamini donduren bir Func delege oluşturur. Toplam, konsolda şu şekilde gösterilecektir:

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

Anahtar Kavramlar

Anonim Yöntemler

C#'te anonim yöntemler, adı olmayan satır içi yöntemler tanımlamak için bir yol sunar. Genellikle delegelerle doğrudan delege örnekleri oluşturmak için kullanılırlar.

Lambda İfadeleri

Lambda ifadeleri, anonim yöntemler yazmak için bir kısayoldur. Aynı sonuca ulaşırken daha az kod yazmanıza olanak tanırlar.

Genel Delege

Bir genel delege herhangi bir veri türü ile çalışabilir. Func ve Action, çalışma zamanında giriş ve çıkış türlerinizi belirlemenize olanak tanıyarak daha fazla esneklik sağlayan genel delege örnekleridir.

Delege Örneği

Bir delege örneği, new anahtar sözcüğü ile veya delegenin imzasına uyan bir yöntemi atamak suretiyle oluşturulur.

System Ad Alanı

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

Delegeler Ile Es Zamanlı Programlama

Action ve Func dahil olmak üzere delegeler, C#'ta es zamanli gorevleri yonetmek icin onemlidir. Gelistiçilere, daha sonra es zamanlı olarak yürütülebilecek bir yöntem referansı kapsülleme olanağı sunarlar. Bu, ana uygulama dizisinin bir görevi başlatabildiği ve ardından, görev tamamlanıncaya kadar başka işler yapmaya devam edebileceği anlamına gelir.

O noktada, bir delege tarafından referans edilen bir geri çağırma yöntemi sonucu işlemek için çağrılır. Bu şablon, uzun süreli operasyonlar gerçekleştirildiğinde bile etkileşimli kalan duyarlı kullanıcı arayüzleri oluşturmak için çok önemlidir.

Örnek: Eş Zamanlı Dosya İşleme

Büyük bir dosyanın işlenmesi gereken bir uygulamayı düşünün. Task gibi eş zamanlı programlama kalıplarıyla 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 dizini engellemeden dosya içeriğini okumak için kullanılır. Dosya işlendiğinde, işlemin tamamlandığını arayanı bildiren onComplete adlı bir Action delegesi çağrılır ve bu, UI'yi güncelleme veya sonuçları günlüğe kaydetme gibi daha fazla işlevin gerçekleştirilmesine olanak tanır.

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

IronPDF, PDF dosyalarını kolayca oluşturmak, düzenlemek ve işlemek için .NET geliştiricileri için tasarlanmış kapsamlı bir C# PDF kütüphanesidir. Chrome tabanlı oluşturma motoruyla öne çıkar, HTML içeriğinden pixel mükemmelliğinde PDF'ler, CSS, JavaScript ve görüntüleri garanti eder.

IronPDF, Windows, Linux ve macOS platformlarında .NET Standard, .NET Framework ve .NET Core dahil olmak üzere geniş bir .NET çerçevesi ve ortam yelpazesiyle uyumludur.

IronPDF Kurulumu

IronPDF'i .NET projelerinize entegre etmek için, en basit yöntem olan NuGet'i kullanabilirsiniz. Sadece Visual Studio'daki Paket Yönetici Konsolunu açın ve şu komutu çalıştırın:

Install-Package IronPdf

Bu komut, IronPDF paketini alır ve kurar, böylece projeniz, PDF oluşturma ve manipüle etme işlemlerine başlamaya hazır hale gelir.

Action Delegesi İle Kod Örneği

İşte bir Action delegesi ile IronPDF kullanarak bir PDF oluşturma görevini gerçekleştirmeyi tanıtan 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 dizgisini alan bir Action delegesi tanımlar ve IronPDF kullanarak bunu bir PDF belgesine dönüştürür. Oluşturulan PDF ardından dosya sistemine kaydedilir. Bu yaklaşım, PDF oluşturma mantığını kapsüllemek için delegelerin nasıl kullanılabileceğini, kodunuzu daha modüler ve esnek hale getirerek gösterir.

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

Lisanslama

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

IronPDF, bireysel geliştirici lisanslarından kurumsal sözleşmelere kadar geliştiriciler için çeşitli lisanslama seçenekleri sunar. Bu lisansların fiyatları $799'den başlamaktadır.

Sonuç

Şu ana kadar, C#'ta Action ve Func delegelerinin, anonim yöntemlerin ve lambda ifadelerinin nasıl kullanılacağını anlamanız gerekirdi. Unutmayın, delegate kavramlarını usta bir şekilde öğrenmenin anahtarı pratik yapmaktır. Delegeleri tanımlamak, atamak ve çağırmak için kendi örneklerinizi oluşturmaya çalışın.

IronPDF'in yeteneklerini ücretsiz deneme sürümü ile istediğiniz gibi keşfedebilirsiniz. Proje gereksinimlerinize uygunsa, fiyatları $799'den başlayan bir lisans edinebilirsiniz.

Sıkça Sorulan Sorular

C# Action delegate nedir?

C# dilinde bir Action delegate, değer döndürmeyen bir yöntemi çalıştırmak için kullanılan önceden tanımlanmış bir delegate türüdür. Genellikle bir sonuç döndürülmesi gerekmeyen işlemlerde kullanılır.

C# dilinde bir Func delegate'i nasıl kullanabilirim?

Bir Func delegate, bir değer döndüren bir yöntemi kapsayan bir yapıtır. Dönüş türünü son parametre olarak belirtirsiniz. Hesaplanmış bir sonucu döndürmeniz gereken yöntemler için yararlıdır.

Func ve Action delegeleri arasındaki fark nedir?

Ana fark, Func delegate'in bir değer döndürmesi, Action delegate'in ise döndürmemesidir. Func, yöntemin bir sonuç döndürmesi gerektiğinde, Action ise geri dönüş değeri olmayan prosedürler için kullanılır.

C# bir uygulamada nasıl PDF oluşturabilirim?

C# uygulamanızda IronPDF kullanarak PDF oluşturabilirsiniz. Chrome tabanlı bir render motoruyla PDF'ler oluşturmanıza olanak tanır ve delegeler kullanarak .NET uygulamalarına entegre edilebilir.

C# dilinde lambda ifadeleri nedir ve delegelerle nasıl ilişkilidir?

Lambda ifadeleri, genellikle kodu basitleştirmek için delegelerle kullanılan satır içi yöntemleri yazmanın kısayol bir yoludur. Yöntemleri kısaca ifade etmenizi sağlar ve Action ile Func delegeleriyle sıkça kullanılır.

Delegeleri kullanarak C# dilinde asenkron görevleri nasıl işlerim?

Action ve Func gibi delegeler, asenkron olarak yürütülen yöntemleri kapsama almak için kullanılabilir. Bu yaklaşım, uygulamanızın görevlerin tamamlanmasını beklerken diğer işlemleri gerçekleştirmesine izin vererek performansı ve duyarlılığı artırır.

C# bir projede PDF oluşturma için bir kütüphane nasıl yüklenir?

IronPDF gibi bir kütüphaneyi .NET projenize yüklemek için Package Manager Console'da NuGet kullanarak Install-Package IronPdf komutunu kullanabilirsiniz. Bu, projenizi PDF oluşturma ve işleme için hazırlar.

C# dilinde anonim yöntemler nedir?

Anonim yöntemler, genellikle delegate'ler ile doğrudan delegate örneği oluşturmak için kullanılan adı olmayan satır içi yöntemleri tanımlaymanıza olanak tanır. Kod bloklarını parametre olarak geçirmenin bir yolunu sunar.

C# dilinde genel bir delegate nedir?

Genel delegeler, herhangi bir veri türünü kullanabilen delegelerdir. Func ve Action, karşılaştığınızda giriş ve çıkış parametre türlerini tanımlamanıza olanak tanıyan genel delegeler örnekleridir.

.NET içinde System isim alanı ve önemi nedir?

.NET içinde System isim alanı, temel sınıf kitaplığının bir parçası olan ve C# uygulamalarını geliştirirken gerekli olan temel işlevleri sağlayan Func ve Action gibi temel tür ve sınıfları içerir.

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