IRONSOFTWAREHOME
AKTUALNOŚCI DLA PROGRAMISTÓW

C# Action (jak to działa dla programistów)

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Jacob Mellor
Updated: 19 lipca 2026

W tym samouczku nauczymy Cie pojec C# Action, delegat Func i powiazanych tematow. Przewodnik ten jest przeznaczony dla początkujacych i poprowadzi Cie przez podstawy, zapewni przykłady i wyjasni kluczowe pojecia delegatu action.

Zacznijmy od zrozumienia, czym sa delegaty w C#. Przeglądamy biblioteke IronPDF pozniej w artykułe.

Zrozumienie delegatow w C#

Delegaty sa konstrukcją programistyczną, która działa jako odniesienia do metod, zdefiniowane przez określony zestaw parametrów i typ zwrotny, enkapsulując funkcjonalności, takie jak predefiniowany typ delegatu i pozwalając metodom na zwracanie wartości.

Pozwala na przekazywanie metod jako argumentów. W zasadzie delegat służy jako wskaźnik funkcji, wskazując na metodę, którą reprezentuje. W C# istnieją dwa predefiniowane typy delegatów, które są szeroko stosowane: Func i Action.

Co to jest delegat Func?

Delegat Func reprezentuje metodę, która może mieć wartość zwrotną. Ostatni parametr typu określa typ zwrotny, a wcześniejsze typy określają parametry wejściowe.

Na przykład Func<int, int, string> przyjmuje dwa parametry całkowitoliczbowe i zwraca komunikat w postaci łańcucha.

Delegaty w praktyce: Przykłady

Przyjrzyjmy się kilku przykładowym zastosowaniom, aby zrozumieć, jak działają delegaty Func i Action w C#.

Przykład użycia delegatu Action

Delegat Action, predefiniowany typ delegatu, jest używany, gdy chcemy uruchomić metodę, która nie zwraca specyficznej wartości, skupiając się bardziej na operacjach. Oto podstawowy przykład:

Action<string> display = message => Console.WriteLine(message);
display("Hello, World!");

Ten kod definiuje delegata Action, ilustrując użycie metody anonimowej, która przyjmuje pojedynczy parametr typu string i wyświetla go w konsoli. Symbol => jest używany do definiowania wyrażenia lambda, które jest zwięzłym sposobem pisania metod anonimowych.

Przykład użycia delegatu Func

Delegat Func, który zwraca wartość, może być użyty w następujący sposób:

Func<int, int, int> add = (x, y) => x + y;
int result = add(5, 3);
Console.WriteLine(result);

Przykład ten tworzy delegata Func, który przyjmuje dwa parametry całkowitoliczbowe i zwraca ich sumę. Suma zostanie wyświetlona na konsoli w następujący sposób:

C# Action (Jak to działa dla programistów): Rysunek 1

Kluczowe pojęcia

Metody anonimowe

Metody anonimowe w C# zapewniają sposób definiowania metod w linii bez nazwy. Często są używane z delegatami do tworzenia instancji delegatów bezpośrednio.

Wyrażenia lambda

Wyrażenia lambda to skrótowy sposób pisania metod anonimowych. Pozwalają na pisanie mniejszej ilości kodu przy osiąganiu tego samego rezultatu.

Delegaty generyczne

Delegat generyczny może pracować z dowolnym typem danych. Func i Action są przykładami delegatów generycznych, zapewniając większą elastyczność, poprzez umożliwienie określenia typów wejściowych i wyjściowych w czasie wykonywania.

Instancja delegata

Instancja delegata jest tworzona za pomocą słowa kluczowego new lub po prostu przez przypisanie metody odpowiadającej sygnaturze delegata.

Przestrzeń nazw System

Przestrzeń nazw System w .NET zawiera wbudowane typy, takie jak Func i Action, które są częścią biblioteki klas podstawowych.

Programowanie asynchroniczne z delegatami

Delegaty, w tym Action i Func, są integralną częścią zarządzania zadaniami asynchronicznymi w C#. Pozwalają programistom enkapsulować odniesienie do metody, która następnie może być wykonywana asynchronicznie. Oznacza to, że główny wątek aplikacji może zainicjować zadanie, a następnie kontynuować innymi działaniami, aż zadanie zostanie ukończone.

W tym momencie wywoływana jest metoda zwrotna, na którą wskazuje delegat, aby obsłużyć wynik. Ten wzorzec jest istotny dla tworzenia responsywnych interfejsów użytkownika, które pozostają interaktywne nawet przy wykonywaniu długotrwałych operacji.

Przykład: Asynchroniczne przetwarzanie plików

Weźmy pod uwagę aplikację, która musi przetworzyć duży plik. Użycie delegatu Action w połączeniu z asynchronicznymi wzorcami programowania, takimi jak Task, może znacznie poprawić wydajność aplikacji:

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

W tym przykładzie użyto File.ReadAllTextAsync, aby odczytać zawartość pliku bez blokowania głównego wątku. Gdy plik zostanie przetworzony, wywoływany jest delegat onComplete, aby powiadomić odbiorcę, że operacja została zakończona, co pozwala na przeprowadzenie dalszych działań, takich jak aktualizacja interfejsu użytkownika czy rejestrowanie wyników.

Wprowadzenie do IronPDF: C# Biblioteka PDF

IronPDF to wszechstronna biblioteka PDF dla C# przeznaczona dla programistów .NET, umożliwiająca tworzenie, edytowanie i manipulowanie plikami PDF w prosty sposób. Wyróżnia się silnikiem renderującym opartym na Chrome, zapewniającym projekcję perfekcyjnych pikseli PDF z treści HTML, CSS, JavaScript i obrazów.

IronPDF jest kompatybilny z szeroką gamą frameworków i środowisk .NET, w tym .NET Standard, .NET Framework i .NET Core, na platformach Windows, Linux i macOS.

Instalacja IronPDF

Aby wcielić IronPDF do swoich projektów .NET, możesz użyć NuGet, który jest najprostszą metodą. Otwórz konsolę Menedżera Pakietów w Visual Studio i uruchom następujące polecenie:

PM > Install-Package IronPdf

To polecenie pobiera i instaluje pakiet IronPDF, konfigurując Twój projekt do rozpoczęcia używania IronPDF do generowania i manipulowania PDF.

Przykład kodu z Delegatem Action

Oto prosty przykład pokazujący, jak używać IronPDF w połączeniu z delegatem Action do wykonania zadania generowania PDF:

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

Przykład ten definiuje delegata Action, który przyjmuje łańcuch HTML i wykorzystuje IronPDF do renderowania go w dokument PDF. Wygenerowany PDF jest następnie zapisywany w systemie plików. Podejście to demonstruje, jak można używać delegatów do enkapsulowania logiki generowania PDF, czyniąc Twój kod bardziej modułowym i elastycznym.

C# Action (Jak to działa dla programistów): Rysunek 2

Licencjonowanie

C# Action (Jak to działa dla programistów): Rysunek 3

IronPDF oferuje różne opcje licencjonowania dla programistów, począwszy od licencji dla pojedynczych programistów po umowy typu enterprise. Ceny tych licencji zaczynają się od $999.

Wnioski

Do tej pory powinienes mieć podstawowe zrozumienie delegatow Action i Func w C#, wraz z tym jak używać metod anonimowych i wyrazen lambda. Pamietaj, ze praktyka jest kluczem do opanowania koncepcji delegatow. Sprobuj utworzyć własne przykłady definiowania, przypisywania i wywolywania delegatow.

Możesz dowolnie eksplorowac możliwości IronPDF z jego bezplatna wersja próbna. Jeżeli odpowiadają wymaganiom Twojego projektu, możesz zabezpieczyć licencję z cenami zaczynającymi się od $999.

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Dyrektor ds. technologii

Jacob Mellor jest Chief Technology Officer w Iron Software i wizjonerskim inżynierem, pionierem technologii C# PDF. Jako pierwotny deweloper głównej bazy kodowej Iron Software, kształtuje architekturę produktów firmy od jej początku, przekształcając ją wspólnie z CEO Cameron Rimington w firmę liczącą ponad 50 osób, obsługującą NASA, Teslę i światowe agencje rządowe.

...
Czytaj więcej

Powiązane artykuły

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta