Passer au contenu du pied de page
.NET AIDE

C# Action (Comment ça fonctionne pour les développeurs)

Dans ce tutoriel, nous allons enseigner les concepts de Action C#, Func delegate, et les sujets connexes. Ce guide est conçu pour les débutants et vous guidera à travers les bases, fournira des exemples et expliquera les termes clés de délégué d'action.

Commençons par comprendre ce que sont les délégués en C#. Nous explorerons la bibliothèque IronPDF plus tard dans l'article.

Comprendre les Délegués en C

Les délégués sont une construction de programmation qui agit comme des références à des méthodes, définis par un ensemble particulier de paramètres et un type de retour, encapsulant des fonctionnalités comme le type de délégué prédéfini et permettant aux méthodes de retourner des valeurs.

Il permet de passer des méthodes comme arguments. Essentiellement, un délégué sert de pointeur de fonction, pointant vers la méthode qu'il représente. En C#, il existe deux types de délégués prédéfinis qui sont largement utilisés : Func et Action.

Qu'est-ce qu'un délégué Func ?

Le délégué Func représente une méthode qui peut avoir une valeur de retour. Le dernier paramètre de type spécifie le type de retour, et les types précédents spécifient les paramètres d'entrée.

Par exemple, un Func<int, int, string> prend deux paramètres entiers et retourne un message sous forme de chaîne.

Les délégués en pratique: Exemples

Jetons un coup d'œil à quelques exemples pour comprendre comment fonctionnent les délégués Func et Action en C#.

Exemple d'un délégué Action

Un délégué Action, un type de délégué prédéfini, est utilisé lorsque vous souhaitez exécuter une méthode qui ne retourne pas spécifiquement une valeur, en se concentrant sur les opérations. Voici un exemple de base:

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

Ce code définit un délégué Action, illustrant l'utilisation d'une méthode anonyme, qui prend un seul paramètre de chaîne et l'affiche dans la console. Le symbole => est utilisé pour définir une expression lambda, qui est un moyen concis d'écrire des méthodes anonymes.

Exemple d'un délégué Func

Un délégué Func, qui retourne une valeur, peut être utilisé comme suit :

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

Cet exemple crée un délégué Func qui prend deux paramètres entiers et retourne leur somme. La somme s'affichera dans la console comme suit :

Action C# (Comment ça fonctionne pour les développeurs) : Figure 1

Concepts Clés

Méthodes Anonymes

Les méthodes anonymes en C# offrent un moyen de définir des méthodes en ligne sans nom. Elles sont souvent utilisées avec des délégués pour créer des instances de délégués directement.

Expressions Lambda

Les expressions lambda sont une abréviation pour écrire des méthodes anonymes. Elles permettent d'écrire moins de code tout en obtenant le même résultat.

Délégué Générique

Un délégué générique peut fonctionner avec n'importe quel type de données. Func et Action sont des exemples de délégués génériques, offrant plus de flexibilité en vous permettant de spécifier des types d'entrée et de sortie à l'exécution.

Instance de Délégué

Une instance de délégué est créée avec le mot-clé new ou simplement en assignant une méthode qui correspond à la signature du délégué.

Espace de Noms System

L'espace de noms System dans .NET contient des types intégrés comme Func et Action, qui font partie de la bibliothèque de classes de base.

Programmation Asynchrone avec les Délégués

Les délégués, y compris Action et Func, sont essentiels pour gérer les tâches asynchrones en C#. Ils permettent aux développeurs d'encapsuler une référence à une méthode qui peut ensuite être exécutée de manière asynchrone. Cela signifie que le thread principal de l'application peut initier une tâche puis continuer avec d'autres travaux jusqu'à ce que la tâche soit terminée.

À ce moment-là, une méthode de rappel, référencée par un délégué, est appelée pour gérer le résultat. Ce modèle est essentiel pour créer des interfaces utilisateurs réactives qui restent interactives même en effectuant des opérations de longue durée.

Exemple : Traitement Asynchrone de Fichier

Considérez une application qui nécessite de traiter un grand fichier. L'utilisation d'un délégué Action en conjonction avec des modèles de programmation asynchrone comme Task peut améliorer considérablement les performances de l'application :

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

Dans cet exemple, File.ReadAllTextAsync est utilisé pour lire le contenu du fichier sans bloquer le thread principal. Une fois le fichier traité, un délégué Action nommé onComplete est invoqué pour informer l'appelant que l'opération est terminée, permettant d'autres actions comme la mise à jour de l'interface utilisateur ou la consignation des résultats.

Introduction d'IronPDF : Une bibliothèque PDF C

IronPDF est une bibliothèque PDF C# complète conçue pour les développeurs .NET pour créer, éditer et manipuler des fichiers PDF avec facilité. Elle se distingue par un moteur de rendu basé sur Chrome, garantissant des PDF parfaits au pixel près à partir de contenu HTML, CSS, JavaScript et images.

IronPDF est compatible avec un large éventail de frameworks et environnements .NET, y compris .NET Standard, .NET Framework et .NET Core, sur les plateformes Windows, Linux et macOS.

Installer IronPDF

Pour intégrer IronPDF dans vos projets .NET, vous pouvez utiliser NuGet, qui est la méthode la plus simple. Il suffit d'ouvrir la Console du gestionnaire de paquets dans Visual Studio et d'exécuter la commande suivante :

Install-Package IronPdf

Cette commande récupère et installe le package IronPDF, configurant votre projet pour commencer à utiliser IronPDF pour la génération et la manipulation de PDF.

Exemple de Code avec un Délégué Action

Voici un exemple simple démontrant comment utiliser IronPDF en conjonction avec un délégué Action pour effectuer une tâche de génération de 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.");
    }
}
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

Cet exemple définit un délégué Action qui prend une chaîne HTML et utilise IronPDF pour la convertir en document PDF. Le PDF généré est ensuite enregistré dans le système de fichiers. Cette approche démontre comment les délégués peuvent être utilisés pour encapsuler une logique de génération de PDF, rendant votre code plus modulaire et flexible.

Action C# (Comment ça fonctionne pour les développeurs) : Figure 2

Licences

Action C# (Comment ça fonctionne pour les développeurs) : Figure 3

IronPDF propose diverses options de licence pour les développeurs, allant des licences pour développeurs individuels aux accords d'entreprise. Le prix de ces licences commence à partir de $799.

Conclusion

D'ici là, vous devriez avoir une compréhension de base des délégués Action et Func en C#, ainsi que de la façon d'utiliser les méthodes anonymes et les expressions lambda. N'oubliez pas, la pratique est la clé pour maîtriser les concepts de délégués. Essayez de créer vos propres exemples pour définir, affecter et invoquer des délégués.

Vous pouvez explorer librement les capacités de IronPDF avec sa version d'essai gratuite. Si cela répond aux exigences de votre projet, vous pouvez obtenir une licence avec des prix débutant à $799.

Questions Fréquemment Posées

Qu'est-ce qu'un délégué Action en C#?

Un délégué Action en C# est un type de délégué prédéfini utilisé pour exécuter une méthode qui ne retourne pas de valeur. Il est couramment utilisé pour les opérations où un résultat n'a pas besoin d'être renvoyé.

Comment puis-je utiliser un délégué Func en C#?

Un délégué Func est utilisé pour encapsuler une méthode qui retourne une valeur. Vous spécifiez le type de retour comme dernier paramètre. Il est utile pour les méthodes où vous devez retourner un résultat calculé.

Quelle est la différence entre les délégués Func et Action?

La principale différence est qu'un délégué Func retourne une valeur, tandis qu'un délégué Action ne le fait pas. Func est utilisé lorsque la méthode doit retourner un résultat, tandis qu'Action est pour les procédures sans valeur de retour.

Comment puis-je créer un PDF dans une application C#?

Vous pouvez créer un PDF dans une application C# en utilisant IronPDF. Il vous permet de générer des PDF avec un moteur de rendu basé sur Chrome et peut être intégré dans des applications .NET en utilisant des délégués.

Qu'est-ce que les expressions lambda en C# et comment sont-elles liées aux délégués?

Les expressions lambda sont une manière concise d'écrire des méthodes en ligne, souvent utilisées avec des délégués pour simplifier le code. Elles permettent d'exprimer des méthodes succinctement et sont fréquemment utilisées avec les délégués Action et Func.

Comment puis-je gérer les tâches asynchrones en C# en utilisant des délégués?

Les délégués comme Action et Func peuvent être utilisés pour encapsuler des méthodes exécutées de manière asynchrone. Cette approche permet à votre application d'effectuer d'autres opérations en attendant que les tâches se terminent, améliorant les performances et la réactivité.

Comment installer une bibliothèque C# pour la création de PDF dans un projet .NET?

Pour installer une bibliothèque comme IronPDF dans votre projet .NET, utilisez NuGet dans la console du gestionnaire de packages avec la commande : Install-Package IronPdf. Cela prépare votre projet pour la création et la manipulation de PDF.

Que sont les méthodes anonymes en C#?

Les méthodes anonymes vous permettent de définir des méthodes en ligne sans nom, souvent utilisées avec des délégués pour créer directement des instances de délégués. Elles offrent une manière de passer des blocs de code en tant que paramètres.

Qu'est-ce qu'un délégué générique en C#?

Les délégués génériques sont des délégués qui peuvent utiliser n'importe quel type de données. Func et Action sont des exemples de délégués génériques, car ils permettent de définir les types de paramètres d'entrée et de sortie à l'exécution.

Qu'est-ce que l'espace de noms System en .NET et quelle est son importance?

L'espace de noms System en .NET contient des types et des classes essentiels comme Func et Action, qui font partie de la bibliothèque de classes de base et fournissent des fonctionnalités de base nécessaires pour développer des applications C#.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite