Langage C# – Les types nullables

Présentation Les types nullables sont des types référence permettant de déclarer des variables représentant des types valeur qui peuvent contenir la valeur null. Seuls les types valeur ont un type nullable correspondant (les types référence sont déjà intrinsèquement nullable). Leur utilité est double : Pouvoir écrire des algorithmes avec des variables de type valeur dont
Read More »

Langage C# – Délimiter l’utilisation d’objets avec l’instruction « using »

Dans le langage C#, l’instruction using permet d’importer des espaces de noms d’assemblys référencés. Cette instruction a aussi une autre utilisation très utile. Elle permet de délimiter précisément l’utilisation d’un objet dans un bloc de code. Voici un exemple permettant d’enregistrer un message dans un fichier : public void EcrireMessage(string aMessage) {     using
Read More »

Langage C# – La pile et le tas

Lors de l’exécution de l’application, les données contenues dans les variables sont stockées dans deux structures en mémoire, appelées la pile et le tas. Soit les instructions suivantes : string s = "azerty"; int i = 5; Voici une illustration du stockage des données en mémoire : Pourquoi cette différence ? Parce que le type
Read More »

Langage C# – Créer facilement des objets qui pointent vers du code (délégués et expressions lambda)

Depuis 2008, au travers du Framework .NET, Microsoft propose deux délégués génériques permettant créer facilement des objets pointant vers du code : Func et Action. Les délégués (sous une autre forme) existaient déjà auparavant. Leur apparition a révolutionné le développement d’application en permettant : Aux procédures et fonctions d’accepter non seulement des données en paramètre,
Read More »

Langage C# – FindAll(…) ou Where(…) sur les collections pour filtrer ?

Pour obtenir un sous-ensemble de données ou d’objets d’une collection, les collections génériques de type List proposent deux méthodes : FindAll et Where. Par exemple, pour obtenir la liste des nombres entiers pairs contenus dans la liste oListeEntiers, nous pouvons écrire (au choix) : IEnumerable<int> oListeEntiersPairs = oListeEntiers.Where(i => i % 2 == 0); //
Read More »

Langage C# – Sécuriser les chaînes de caractères

Lors de l’exécution d’une application développée avec le langage C#, le contenu des variables de type System.String n’est pas sécurisé. Avec un logiciel tel que ProcessHacker, il est possible de consulter leur contenu. Ainsi, d’un point de vue sécurité, il n’est pas conseillé d’utiliser le type System.String pour créer des variables contenant des données sensibles
Read More »

Programmation Orientée Objet – Dépendances entre les classes

En conception et programmation orientée objet, il existe différentes manières « d’associer » les classes entre elles : L’association L’association entre deux classes permet d’indiquer qu’une classe est en liaison avec une autre. Par exemple, si un client peut passer des commandes, alors il est nécessaire d’associer les classes Client et Commande, afin de pouvoir
Read More »

Langage C# – L’importance des accesseurs (propriétés)

Faites-vous partie des développeurs qui considèrent qu’il n’est pas utile d’utiliser des accesseurs (nommés propriétés dans Visual Studio) dans vos classes (en particulier les classes métier), en préférant l’utilisant directe des attributs (nommés champs dans Visual Studio) ? // Attribut private string _NumeroImmatriculation; // Accesseur permettant d'accéder en lecture / écriture. public string NumeroImmatriculation {
Read More »