AIDE .NET

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

Publié mars 6, 2024
Partager:

En C#, unconst mot-clé est un outil puissant pour définir des champs constants ou des valeurs connues au moment de la compilation. Ces valeurs sont immuables, c'est-à-dire qu'une fois qu'elles sont définies, leur valeur ne peut être modifiée tout au long du programme. L'utilisation de const peut rendre votre code plus lisible et plus facile à maintenir en fournissant une indication claire des valeurs qui sont censées rester constantes. Dans cet article, nous parlerons du mot-clé const et du mot-cléBibliothèque IronPDF.

Déclarer des variables constantes

Pour déclarer une variable constante, vous utilisez le mot-clé const suivi d'un type de données, puis vous l'initialisez immédiatement. Par exemple, const int myConstValue = 100; définit une constante entière. Il est important de noter qu'une variable constante doit être initialisée lorsqu'elle est déclarée, car sa valeur est censée être évaluée au moment de la compilation et entièrement avant l'exécution du programme.

public class Program
{
    public const int MaxSize = 10;
    static void Main(string [] args)
    {
        Console.WriteLine(MaxSize);
    }
}
public class Program
{
    public const int MaxSize = 10;
    static void Main(string [] args)
    {
        Console.WriteLine(MaxSize);
    }
}
Public Class Program
	Public Const MaxSize As Integer = 10
	Shared Sub Main(ByVal args() As String)
		Console.WriteLine(MaxSize)
	End Sub
End Class
VB   C#

C# Const(Comment ça marche pour les développeurs) : Figure 1 - Sortie Const

Cet exemple illustre une utilisation simple d'un entier constant(const int) au sein d'une classe. La constante MaxSize est accessible dans la même classe et peut être utilisée directement dans la méthode static void Main.

variables constantes et variables en lecture seule

Les mots-clés const et readonly sont tous deux utilisés pour déclarer des valeurs immuables, mais il existe des différences importantes entre eux. Un champ const est une constante à la compilation, ce qui signifie que sa valeur est déterminée à la compilation et incorporée directement dans le langage intermédiaire(IL) code. Il est donc statique et ne peut être modifié.

En revanche, une variable readonly peut être assignée soit au moment de la déclaration, soit dans un constructeur de la classe. Cela permet une certaine flexibilité, car les champs readonly peuvent avoir des valeurs différentes en fonction du constructeur utilisé pour instancier la classe.

public class Program
{
    public const string ConstExample = "Constant"; // const string
    public readonly string ReadonlyExample;
    public Program()
    {
        ReadonlyExample = "Initialized at runtime";
    }
    static void Main(string [] args)
    {
        Program p = new Program();
        Console.WriteLine(ConstExample);
        Console.WriteLine(p.ReadonlyExample);
    }
}
public class Program
{
    public const string ConstExample = "Constant"; // const string
    public readonly string ReadonlyExample;
    public Program()
    {
        ReadonlyExample = "Initialized at runtime";
    }
    static void Main(string [] args)
    {
        Program p = new Program();
        Console.WriteLine(ConstExample);
        Console.WriteLine(p.ReadonlyExample);
    }
}
Public Class Program
	Public Const ConstExample As String = "Constant" ' const string
	Public ReadOnly ReadonlyExample As String
	Public Sub New()
		ReadonlyExample = "Initialized at runtime"
	End Sub
	Shared Sub Main(ByVal args() As String)
		Dim p As New Program()
		Console.WriteLine(ConstExample)
		Console.WriteLine(p.ReadonlyExample)
	End Sub
End Class
VB   C#

C# Const(Comment ça marche pour les développeurs) : Figure 2 - Sortie d'un champ en lecture seule

Portée des variables constantes

Les variables constantes peuvent être déclarées dans une méthode ou en tant que membre d'une classe. Lorsque vous déclarez une variable const dans une méthode, il s'agit d'une constante locale. Les constantes locales ne sont accessibles que dans la méthode dans laquelle elles sont déclarées.

public class Program
{
    static void DemoMethod()
    {
        const int LocalConst = 5; // local constant
        Console.WriteLine(LocalConst);
    }
}
public class Program
{
    static void DemoMethod()
    {
        const int LocalConst = 5; // local constant
        Console.WriteLine(LocalConst);
    }
}
Public Class Program
	Private Shared Sub DemoMethod()
		Const LocalConst As Integer = 5 ' local constant
		Console.WriteLine(LocalConst)
	End Sub
End Class
VB   C#

Constantes C# (Comment ça marche pour les développeurs) : Figure 3 - Sortie d'une constante locale

En revanche, lorsqu'un const est déclaré dans une classe mais en dehors de toute méthode, il est accessible depuis n'importe quelle fonction statique de la même classe, car les champs const sont implicitement statiques. Toutefois, toute tentative d'accès à un champ const à partir d'une méthode d'instance sans y faire référence par le biais du nom de la classe entraînera une erreur de compilation.

Constantes de compilation et constantes d'exécution

La principale caractéristique des valeurs const est qu'elles sont évaluées au moment de la compilation. Cela signifie que la valeur d'un champ const doit être connue et entièrement évaluée par le compilateur. Cela contraste avec les variables qui sont évaluées au moment de l'exécution, dont les valeurs sont déterminées au cours de l'exécution du programme.

Par exemple, toute tentative d'attribution d'une valeur à un champ const sur la base d'un calcul effectué au moment de l'exécution provoquera une erreur au moment de la compilation. Le compilateur exige que les valeurs const soient assignées à partir d'expressions constantes ou de valeurs littérales connues au moment de la compilation.

const double Pi = Math.PI; // This will cause a compile time error
const double Pi = Math.PI; // This will cause a compile time error
Const Pi As Double = Math.PI ' This will cause a compile time error
VB   C#

Utilisation avancée des constantes et des membres statiques dans C# ;

Au-delà des bases de const et readonly en C#, comprendre comment travailler avec des expressions constantes, des constructeurs statiques et des champs statiques peut améliorer vos pratiques de codage, en particulier lorsqu'il s'agit de valeurs constantes qui doivent être partagées entre les instances d'une classe.

Expressions constantes

Une expression constante en C# est une expression qui peut être entièrement évaluée au moment de la compilation. Par conséquent, lorsque vous déclarez une variable const, le côté droit de sa déclaration doit être une expression constante. Cela garantit que la valeur const est fixe et peut être intégrée directement dans le code compilé, ce qui permet d'obtenir des applications hautement optimisées et efficaces.

public class Calculator
{
    public const int Multiplier = 2;
    public const int DoubleMultiplier = Multiplier * 2; // Constant expression
}
public class Calculator
{
    public const int Multiplier = 2;
    public const int DoubleMultiplier = Multiplier * 2; // Constant expression
}
Public Class Calculator
	Public Const Multiplier As Integer = 2
	Public Const DoubleMultiplier As Integer = Multiplier * 2 ' Constant expression
End Class
VB   C#

Dans cet exemple, DoubleMultiplier est une expression constante car elle est calculée à l'aide d'une autre valeur constante, ce qui la rend éligible pour être une constante à la compilation.

Constructeur statique

Un constructeur statique en C# est un constructeur spécial qui initialise les champs statiques de la classe. Elle est appelée automatiquement avant que la première instance ne soit créée ou que des membres statiques ne soient référencés. Les constructeurs statiques sont utiles pour l'initialisation complexe de données statiques ou pour effectuer des actions qui doivent se produire une fois par type plutôt que par instance.

public class Program
{
    public static readonly string StartTime;
    static Program()
    {
        StartTime = DateTime.Now.ToString("T");
    }
    public static void DisplayStartTime()
    {
        Console.WriteLine($"Program started at: {StartTime}");
    }
}
public class Program
{
    public static readonly string StartTime;
    static Program()
    {
        StartTime = DateTime.Now.ToString("T");
    }
    public static void DisplayStartTime()
    {
        Console.WriteLine($"Program started at: {StartTime}");
    }
}
Public Class Program
	Public Shared ReadOnly StartTime As String
	Shared Sub New()
		StartTime = DateTime.Now.ToString("T")
	End Sub
	Public Shared Sub DisplayStartTime()
		Console.WriteLine($"Program started at: {StartTime}")
	End Sub
End Class
VB   C#

Le constructeur statique initialise le champ StartTime avec l'heure actuelle. Cette valeur est ensuite accessible par la méthode statique DisplayStartTime, ce qui montre comment les constructeurs statiques peuvent être utilisés pour initialiser des champs en lecture seule avec des valeurs qui ne sont connues qu'au moment de l'exécution.

Les champs statiques et les mots-clés "readonly" et "static"

Les champs statiques appartiennent à la classe plutôt qu'à une instance de la classe et sont déclarés à l'aide du mot-clé static. Combiné au mot-clé readonly, un champ statique peut être initialisé soit au moment de la déclaration, soit dans un constructeur statique, et ne peut plus être modifié par la suite.

public class Configuration
{
    public static readonly int MaxUsers;
    public const int TimeoutSeconds = 30;
    static Configuration()
    {
        MaxUsers = FetchMaxUsersFromConfig();
    }
    private static int FetchMaxUsersFromConfig()
    {
        // Imagine this method reads from a configuration file
        return 100;
    }
}
public class Configuration
{
    public static readonly int MaxUsers;
    public const int TimeoutSeconds = 30;
    static Configuration()
    {
        MaxUsers = FetchMaxUsersFromConfig();
    }
    private static int FetchMaxUsersFromConfig()
    {
        // Imagine this method reads from a configuration file
        return 100;
    }
}
Public Class Configuration
	Public Shared ReadOnly MaxUsers As Integer
	Public Const TimeoutSeconds As Integer = 30
	Shared Sub New()
		MaxUsers = FetchMaxUsersFromConfig()
	End Sub
	Private Shared Function FetchMaxUsersFromConfig() As Integer
		' Imagine this method reads from a configuration file
		Return 100
	End Function
End Class
VB   C#

Cet exemple démontre l'utilisation d'un constructeur statique pour initialiser un champ statique readonly, MaxUsers, avec une valeur qui est récupérée au moment de l'exécution, éventuellement à partir d'un fichier de configuration. Le champ const, TimeoutSeconds, représente une constante de compilation qui est directement intégrée dans le code.

Introduction à IronPDF

C# Const(Comment ça marche pour les développeurs) : Figure 4 - IronPDF

IronPDF est une bibliothèque polyvalente qui permet aux développeurs de créer, d'éditer et de lire des documents PDF dans des applications .NET. Cet outil puissant simplifie la génération de PDF en permettant aux développeurs deconvertir HTML en PDF, manipuler le contenu et extraire les données des fichiers PDF en toute simplicité.

La force de IronPDF réside dans la conversionHTML vers PDF, en préservant à la fois la mise en page et le style. C'est un outil idéal pour générer des PDF à partir de contenu web, tels que des rapports, des factures et de la documentation. Les fichiers HTML, les URL et les chaînes HTML peuvent être facilement convertis en fichiers 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");
    }
}
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
VB   C#

Premiers pas avec IronPDF et exemple de contrainte

Pour démontrer comment IronPDF peut être intégré dans un projet .NET, examinons un exemple simple dans lequel nous utilisons une constante pour définir la chaîne HTML que nous voulons convertir en document PDF.

using IronPdf;
public class PdfGenerator
{
    // Defining a constant HTML template
    public const string HtmlTemplate = @"
        <html>
            <head>
                <title>PDF Report</title>
            </head>
            <body>
                <h1>IronPDF Report</h1>
                <p>This is a simple PDF document generated from HTML string using IronPDF.</p>
            </body>
        </html>";
    public static void CreatePdf(string filePath)
    {
        IronPdf.License.LicenseKey = "License";
        // Create a new PDF document from HTML template
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(HtmlTemplate);
        // Save the PDF document to a file
        pdf.SaveAs(filePath);
        Console.WriteLine($"PDF generated successfully at {filePath}");
    }
}
class Program
{
    static void Main(string [] args)
    {
        PdfGenerator.CreatePdf("example.pdf");
    }
}
using IronPdf;
public class PdfGenerator
{
    // Defining a constant HTML template
    public const string HtmlTemplate = @"
        <html>
            <head>
                <title>PDF Report</title>
            </head>
            <body>
                <h1>IronPDF Report</h1>
                <p>This is a simple PDF document generated from HTML string using IronPDF.</p>
            </body>
        </html>";
    public static void CreatePdf(string filePath)
    {
        IronPdf.License.LicenseKey = "License";
        // Create a new PDF document from HTML template
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(HtmlTemplate);
        // Save the PDF document to a file
        pdf.SaveAs(filePath);
        Console.WriteLine($"PDF generated successfully at {filePath}");
    }
}
class Program
{
    static void Main(string [] args)
    {
        PdfGenerator.CreatePdf("example.pdf");
    }
}
Imports IronPdf
Public Class PdfGenerator
	' Defining a constant HTML template
	Public Const HtmlTemplate As String = "
        <html>
            <head>
                <title>PDF Report</title>
            </head>
            <body>
                <h1>IronPDF Report</h1>
                <p>This is a simple PDF document generated from HTML string using IronPDF.</p>
            </body>
        </html>"
	Public Shared Sub CreatePdf(ByVal filePath As String)
		IronPdf.License.LicenseKey = "License"
		' Create a new PDF document from HTML template
		Dim renderer = New ChromePdfRenderer()
		Dim pdf = renderer.RenderHtmlAsPdf(HtmlTemplate)
		' Save the PDF document to a file
		pdf.SaveAs(filePath)
		Console.WriteLine($"PDF generated successfully at {filePath}")
	End Sub
End Class
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		PdfGenerator.CreatePdf("example.pdf")
	End Sub
End Class
VB   C#

Dans cet exemple, la constante HtmlTemplate est définie avec un contenu HTML simple qui sert de source à notre document PDF. La méthode CreatePdf utilise la classe ChromePdfRenderer d'IronPDF pour convertir ce HTML en PDF et l'enregistrer dans le chemin d'accès au fichier spécifié. Cet exemple illustre la facilité avec laquelle IronPDF peut être utilisé pour générer des PDF à partir d'un contenu HTML statique, en tirant parti du mot-clé const pour définir des modèles HTML immuables.

Sortie

Voici le fichier PDF de sortie :

C# Const(Comment ça marche pour les développeurs) : Figure 5 - Sortie PDF

Conclusion

C# Const(Comment ça marche pour les développeurs) : Figure 6 - Licences

En C#, le mot-clé const est une fonctionnalité précieuse pour définir des valeurs immuables connues au moment de la compilation. Il contribue à améliorer la lisibilité et la maintenabilité de votre code en indiquant clairement quelles valeurs sont des constantes. N'oubliez pas que les variables const sont implicitement statiques, qu'elles doivent être initialisées lors de la déclaration et que leurs valeurs doivent être des constantes au moment de la compilation. En comparaison, les variables readonly offrent plus de flexibilité mais sont initialisées au moment de l'exécution.

IronPDF se distingue non seulement par ses fonctionnalités robustes en matière de manipulation des PDF, mais aussi par la souplesse de son modèle d'adoption. Pour les développeurs et les organisations qui souhaitent explorer ses capacités, IronPDF offre uneessai gratuitil s'agit d'une excellente occasion d'évaluer ses caractéristiques et sa facilité d'intégration sans investissement initial.

Lorsque vous êtes prêt à utiliser IronPDF pour un usage commercial, les options de licence commencent à partir de $749. Cette structure tarifaire est conçue pour répondre aux besoins de projets de tailles et de types différents, ce qui vous permet de choisir la licence qui convient le mieux à vos plans de développement et de distribution.

< PRÉCÉDENT
Méthode de mise en veille des threads en C# (comment cela fonctionne pour les développeurs)
SUIVANT >
RabbitMQ C# (Comment ça marche pour les développeurs)