using IronPdf;
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from a HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
// Export to a file or Stream
pdf.SaveAs("output.pdf");
// Advanced Example with HTML Assets
// Load external html assets: Images, CSS and JavaScript.
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
Il y a un mot-clé particulier en C# qui revêt une importance particulière, c'est le mot-clé this. Ce mot-clé fait référence à l'instance de classe courante dans laquelle il est utilisé. Il permet notamment de faire la distinction entre les variables de niveau classe et les paramètres de méthodes qui partagent le même nom. Par exemple, si vous avez une variable d'instance et un paramètre de méthode portant le même nom, this peut vous sauver la mise!
Les bases de ce mot-clé
Dans une classe publique, comme Employé par exemple, vous pouvez avoir des variables d'instance publiques telles que id ou name. Si vous souhaitez attribuer des valeurs à ces variables d'instance à l'intérieur d'une méthode, vous risquez de vous heurter à un problème courant : que se passe-t-il si les paramètres de la méthode portent le même nom que les variables d'instance ?
Voici une solution : Utilisez la fonctionmot-clé this dans la documentation C#! Dans l'exemple suivant d'une méthode à l'intérieur de la classe publique Employee, le mot-clé this est utilisé pour distinguer les variables d'instance et les paramètres de la méthode qui partagent les mêmes noms.
Public Sub Display(ByVal id As Integer, ByVal name As String)
Me.id = id
Me.name = name
End Sub
Dans ce cas, this.id fait référence à la variable d'instance, et id est le paramètre de la méthode.
mot-clé this dans la surcharge des constructeurs
En s'appuyant sur le mot-clé this, la surcharge des constructeurs devient une technique puissante au sein d'une même classe. Lorsqu'une classe, telle que la classe student, possède plusieurs constructeurs avec des paramètres différents, le mot-clé this permet à un constructeur d'en appeler un autre, éliminant ainsi la nécessité d'un code redondant.
Considérons l'exemple suivant où this est utilisé dans un constructeur paramétré :
public class Student
{
private string name;
private int id;
public Student() : this("Default", 0)
{
}
public Student(string name, int id)
{
this.name = name;
this.id = id;
}
}
public class Student
{
private string name;
private int id;
public Student() : this("Default", 0)
{
}
public Student(string name, int id)
{
this.name = name;
this.id = id;
}
}
Public Class Student
Private name As String
Private id As Integer
Public Sub New()
Me.New("Default", 0)
End Sub
Public Sub New(ByVal name As String, ByVal id As Integer)
Me.name = name
Me.id = id
End Sub
End Class
Dans le constructeur sans paramètre, this("Défaut", 0) appelle le constructeur paramétré, en définissant Default comme nom et comme ID.
Explorer this dans les méthodes d'extension
Les méthodes d'extension en C# permettent d'ajouter des méthodes à des types existants sans modifier le type d'origine. C'est ici que le mot-clé this fait quelque chose de magique. Il est utilisé dans la liste des paramètres de la méthode d'extension pour faire référence au type étendu.
Voici un exemple de méthode d'extension :
public static class StringExtensions
{
public static bool IsNullOrEmpty(this string str)
{
return string.IsNullOrEmpty(str);
}
}
public static class StringExtensions
{
public static bool IsNullOrEmpty(this string str)
{
return string.IsNullOrEmpty(str);
}
}
Public Module StringExtensions
<System.Runtime.CompilerServices.Extension> _
Public Function IsNullOrEmpty(ByVal str As String) As Boolean
Return String.IsNullOrEmpty(str)
End Function
End Module
Ici, this string str indique à C# qu'il s'agit d'une méthode d'extension pour le type string. Vous pouvez maintenant utiliser cette méthode sur n'importe quel objet de type chaîne de caractères, comme if(myString.IsNullOrEmpty()).
this dans les indexeurs
Le mot-clé this peut également être utilisé pour définir les indexeurs. Un indexeur permet d'indexer les instances d'une classe comme des tableaux. Cela vous permet d'accéder aux données contenues dans les objets en utilisant une notation de type index. Dans un indexeur, this est suivi d'un index de tableau, qui est généralement int index.
Voici un exemple de base d'un indexeur :
public class Test
{
private int [] array = new int [100];
public int this [int index]
{
get { return array [index]; }
set { array [index] = value; }
}
}
public class Test
{
private int [] array = new int [100];
public int this [int index]
{
get { return array [index]; }
set { array [index] = value; }
}
}
Public Class Test
Private array(99) As Integer
Default Public Property Item(ByVal index As Integer) As Integer
Get
Return array (index)
End Get
Set(ByVal value As Integer)
array (index) = value
End Set
End Property
End Class
Dans la classe Test, le mot-clé this définit un indexeur qui peut être utilisé pour obtenir ou définir des valeurs dans le champ d'instance array.
this et les membres statiques
Une chose à noter à propos de this est qu'il ne peut pas être utilisé pour référencer des membres statiques ou des méthodes. En effet, this fait référence à l'instance courante, et les membres statiques appartiennent à la classe elle-même, et non à une instance de la classe.
public class Program
{
public static void Main(string [] args)
{
// Can't use `this` here, because 'Main' is a static method.
}
}
public class Program
{
public static void Main(string [] args)
{
// Can't use `this` here, because 'Main' is a static method.
}
}
Public Class Program
Public Shared Sub Main(ByVal args() As String)
' Can't use `this` here, because 'Main' is a static method.
End Sub
End Class
Rappelez-vous donc que this est destiné aux instances, et non aux membres statiques ou au niveau de la classe!
mot-clé this et propriétés
Tout comme les variables d'instance et les paramètres de méthode, le mot-clé this peut également être utilisé avec les propriétés. En C#, une propriété est un membre qui fournit un mécanisme flexible pour lire, écrire ou calculer la valeur d'un champ privé. Les propriétés peuvent être utilisées comme s'il s'agissait de données publiques, mais il s'agit en fait de méthodes spéciales appelées "accesseurs".
Voyons un exemple simple d'utilisation de this dans une propriété :
public class Employee
{
private string name;
public string Name
{
get { return this.name; }
set { this.name = value; }
}
}
public class Employee
{
private string name;
public string Name
{
get { return this.name; }
set { this.name = value; }
}
}
Public Class Employee
'INSTANT VB NOTE: The field name was renamed since Visual Basic does not allow fields to have the same name as other class members:
Private name_Conflict As String
Public Property Name() As String
Get
Return Me.name_Conflict
End Get
Set(ByVal value As String)
Me.name_Conflict = value
End Set
End Property
End Class
Dans la classe ci-dessus, le mot-clé this est utilisé pour faire référence à la chaîne privée name dans les accesseurs get et set de la propriété Name.
Explorer this et les délégués
Un autre endroit où this apparaît est dans les délégués. Un délégué en C# est similaire à un pointeur de fonction en C ou C++. Il s'agit d'une variable de type référence qui contient la référence à une méthode. Les méthodes déléguées, tout comme les méthodes d'extension, peuvent utiliser this pour accéder à l'instance courante.
Voici un exemple de délégué utilisant this :
public delegate void DisplayDelegate();
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
public void Display()
{
DisplayDelegate displayDelegate = new DisplayDelegate(this.DisplayDetails);
displayDelegate();
}
private void DisplayDetails()
{
Console.WriteLine("ID: " + Id + ", Name: " + Name);
}
}
public delegate void DisplayDelegate();
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
public void Display()
{
DisplayDelegate displayDelegate = new DisplayDelegate(this.DisplayDetails);
displayDelegate();
}
private void DisplayDetails()
{
Console.WriteLine("ID: " + Id + ", Name: " + Name);
}
}
Public Delegate Sub DisplayDelegate()
Public Class Student
Public Property Id() As Integer
Public Property Name() As String
Public Sub Display()
Dim displayDelegate As New DisplayDelegate(AddressOf Me.DisplayDetails)
displayDelegate()
End Sub
Private Sub DisplayDetails()
Console.WriteLine("ID: " & Id & ", Name: " & Name)
End Sub
End Class
Dans la classe de l'étudiant, this.DisplayDetails crée une nouvelle instance du délégué qui fait référence à la méthode DisplayDetails de l'objet courant.
Implémentation du mot-clé this avec IronPDF
Voyons un exemple où vous pourriez utiliser le mot-clé this en conjonction avec le mot-cléIronPDF, une puissante bibliothèque .NET pour l'édition et l'utilisation de lacréation de fichiers PDF à l'aide de HTML.
Considérons une classe nommée PDFHandler qui utilise la bibliothèque IronPDF pour effectuer diverses opérations sur les fichiers PDF :
using IronPdf;
public class PDFHandler
{
private string path;
public PDFHandler(string path)
{
this.path = path;
}
public void GeneratePDF(string content)
{
var Renderer = new IronPdf.ChromePdfRenderer();
var PDF = Renderer.RenderHtmlAsPdf(content);
PDF.SaveAs(this.path);
}
}
using IronPdf;
public class PDFHandler
{
private string path;
public PDFHandler(string path)
{
this.path = path;
}
public void GeneratePDF(string content)
{
var Renderer = new IronPdf.ChromePdfRenderer();
var PDF = Renderer.RenderHtmlAsPdf(content);
PDF.SaveAs(this.path);
}
}
Imports IronPdf
Public Class PDFHandler
Private path As String
Public Sub New(ByVal path As String)
Me.path = path
End Sub
Public Sub GeneratePDF(ByVal content As String)
Dim Renderer = New IronPdf.ChromePdfRenderer()
Dim PDF = Renderer.RenderHtmlAsPdf(content)
PDF.SaveAs(Me.path)
End Sub
End Class
Dans cette classe PDFHandler, le mot-clé this est utilisé pour faire référence au champ path de l'instance courante. Ce champ permet d'enregistrer le PDF généré dans le chemin d'accès spécifié.
Lorsque nous créons une nouvelle instance de PDFHandler et appelons la méthode GeneratePDF, le mot-clé this nous permet d'utiliser le path spécifié lors de la création de l'objet :
class Program
{
static void Main(string [] args)
{
PDFHandler pdfHandler = new PDFHandler("C:\\ThisKeyowrd.pdf");
pdfHandler.GeneratePDF("Hello World!");
}
}
class Program
{
static void Main(string [] args)
{
PDFHandler pdfHandler = new PDFHandler("C:\\ThisKeyowrd.pdf");
pdfHandler.GeneratePDF("Hello World!");
}
}
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim pdfHandler As New PDFHandler("C:\ThisKeyowrd.pdf")
pdfHandler.GeneratePDF("Hello World!")
End Sub
End Class
Ici, this rend le code plus lisible et compréhensible, en particulier lorsqu'il s'agit de bibliothèques comme IronPDF.
Conclusion
Vous devriez maintenant avoir une bonne compréhension du mot-clé this en C#, y compris de ses nombreuses utilisations, des simples variables d'instance aux contextes complexes tels que les constructeurs, les méthodes d'extension, les propriétés, les délégués, les méthodes anonymes, et même lors de l'utilisation de bibliothèques populaires telles qu'IronPDF.
N'oubliez pas qu'IronPDF offre uneessai gratuit d'IronPDFvous pourrez ainsi mettre à l'épreuve tout ce que vous avez appris aujourd'hui. Si vous décidez de continuer, les licences commencent à partir de \$liteLicense. IronPDF peut être un ajout précieux à votre boîte à outils de développement C#, en simplifiant la tâche de manipulation des fichiers PDF dans vos applications.
Avant de devenir ingénieur logiciel, Kannapat a obtenu un doctorat en ressources environnementales à l'université d'Hokkaido au Japon. Tout en poursuivant ses études, Kannapat est également devenu membre du Vehicle Robotics Laboratory, qui fait partie du Department of Bioproduction Engineering (département d'ingénierie de la bioproduction). En 2022, il a mis à profit ses compétences en C# pour rejoindre l'équipe d'ingénieurs d'Iron Software, où il se concentre sur IronPDF. Kannapat apprécie son travail car il apprend directement auprès du développeur qui écrit la majeure partie du code utilisé dans IronPDF. Outre l'apprentissage par les pairs, Kannapat apprécie l'aspect social du travail chez Iron Software. Lorsqu'il n'écrit pas de code ou de documentation, Kannapat peut généralement être trouvé en train de jouer sur sa PS5 ou de revoir The Last of Us.
< PRÉCÉDENT C# Nouveau (Comment ça marche pour les développeurs)
SUIVANT > Liste des C# (Comment ça marche pour les développeurs)
Des millions d'ingénieurs dans le monde entier lui font confiance
Réservez une démo en direct gratuite
Réservez une démonstration personnelle de 30 minutes.
Pas de contrat, pas de détails de carte, pas d'engagements.
Voici ce à quoi vous pouvez vous attendre :
Une démonstration en direct de notre produit et de ses principales fonctionnalités
Obtenez des recommandations de fonctionnalités spécifiques au projet
Toutes vos questions trouvent réponse pour vous assurer de disposer de toutes les informations dont vous avez besoin. (Aucun engagement de votre part.)
CHOISIR L'HEURE
VOS INFORMATIONS
Réservez votre démo en direct gratuite
Fiable par plus de 2 millions d'ingénieurs dans le monde entier