C# autorise lutilisation de variables pointeur dans une fonction ou un bloc de code lorsquil est marqué par le modificateur unsafe. Le code unsafe ou code non managé est un bloc de code qui utilise une variable pointeur. Pointeurs Un pointeur est une variable dont la valeur est ladresse dune autre v
Nous avons vu que les délégués sont utilisés pour référencer toute méthode ayant la même signature que le délégué. En dautres termes, vous pouvez appeler une méthode qui peut être référencée par un délégué en utilisant cet objet délégué. Les méthodes anonymes fournissent une technique pour passer un
Les génériques vous permettent de définir la spécification du type de données des éléments de programmation dans une classe ou une méthode, jusquà ce quils soient réellement utilisés dans le programme. En dautres termes, les génériques vous permettent décrire une classe ou une méthode qui peut fonct
Les classes de collection sont des classes spécialisées pour le stockage et la récupération de données. Ces classes offrent une prise en charge pour les piles, les files, les listes et les tables de hachage. La plupart des classes de collection implémentent les mêmes interfaces. Les classes de colle
Les événements sont des actions utilisateur telles que lappui sur une touche, les clics, les mouvements de souris, etc., ou certaines occurrences comme les notifications générées par le système. Les applications doivent répondre aux événements lorsquils se produisent. Par exemple, les interruptions.
Les délégués C# sont similaires aux pointeurs de fonctions en C ou C++. Un délégué est une variable de type référence qui contient la référence à une méthode. Cette référence peut être modifiée à lexécution. Les délégués sont particulièrement utilisés pour implémenter les événements et les méthodes
Un indexeur permet dindexer un objet comme un tableau. Quand vous définissez un indexeur pour une classe, elle se comporte comme un tableau virtuel. Vous accédez alors à linstance avec lopérateur daccès tableau [ ]. Syntaxe Indexeur unidimensionnel : type_élément this[int index] { get { /* ret
Les propriétés sont des membres nommés de classes, structures et interfaces. Les variables/méthodes membres sont appelées champs. Les propriétés étendent les champs et sutilisent avec la même syntaxe. Elles utilisent des accesseurs pour lire, écrire ou manipuler les valeurs des champs privés. Les p
La réflexion (System.Reflection) permet dobtenir des informations de type à lexécution. Les classes daccès aux métadonnées dun programme en cours sont dans System.Reflection. Applications de la réflexion Voir informations dattributs à lexécution Examiner types dans un assembly et les instancier Li
Un attribut est une étiquette déclarative qui transmet des informations au runtime sur les comportements déléments (classes, méthodes, structures, énumérateurs, assemblies...). On ajoute des métadonnées (instructions compilateur, commentaires, descriptions...) via des attributs. Notation : crochets
Un fichier est une collection de données stockées sur disque avec un nom et un chemin. Ouvert en lecture/écriture, il devient un flux (stream) : séquence doctets passant par un chemin de communication. Deux flux principaux : flux dentrée (lecture) et flux de sortie (écriture). Classes E/S dans Sys
Une exception est un problème survenant pendant lexécution. En C#, cest une réponse à une circonstance exceptionnelle (ex: division par zéro). Les exceptions permettent de transférer le contrôle dune partie du programme à une autre. La gestion repose sur quatre mots-clés : try, catch, finally, thro
Une expression régulière (regex) est un motif qui peut être comparé à un texte dentrée. Le framework .NET fournit un moteur regex pour cette correspondance. Un motif comprend : littéraux caractères, opérateurs, constructions. Constructions pour définir des regex Échappements de caractères Classes
Les directives de préprocesseur donnent des instructions au compilateur pour prétraiter linformation avant la compilation réelle. Toutes commencent par #, seules des espaces blancs peuvent les précéder sur une ligne. Ce ne sont pas des instructions (pas de point-virgule). C# na pas de préprocesseur
Un espace de noms (namespace) permet de séparer un ensemble de noms dun autre. Les noms de classes dans un namespace nentrent pas en conflit avec les mêmes noms dans un autre. Définition dun namespace namespace nom_espace { // déclarations de code } Pour appeler un membre : nom_espace.nom_mem
Une interface est un contrat syntaxique que toutes les classes lhéritant doivent suivre. Elle définit le quoi (quelles méthodes/propriétés), la classe dérivée définit le comment (implémentation). Les interfaces déclarent propriétés, méthodes, événements. Elles ne contiennent que les déclarations. L
On peut redéfinir ou surcharger la plupart des opérateurs intégrés C# pour les utiliser avec des types utilisateur. Un opérateur surchargé est une fonction avec le mot-clé operator suivi du symbole. Implémentation Exemple : surcharge de + pour une classe Boite : public static Boite operator+ (Boite
Le polymorphisme signifie plusieurs formes. En POO, il sexprime comme une interface, multiples fonctions. Deux types : Polymorphisme statique : résolution à la compilation (early binding) Polymorphisme dynamique : résolution à lexécution (late binding) Polymorphisme statique Deux techniques : S
Lhéritage est un concept clé de la POO. Il permet de définir une classe en termes dune autre, facilitant création et maintenance, favorisant la réutilisation. La nouvelle classe (dérivée) hérite des membres de la classe existante (base). Cela implémente la relation EST-UN (ex: Chien EST-UN Mammifèr
Définir une classe, cest définir un plan (blueprint) pour un type de données. Cela ne crée pas de données, mais définit ce que signifie le nom de la classe : composition dun objet et opérations possibles. Les objets sont des instances dune classe. Les méthodes et variables constitutives sont les me
Langue C