IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Créer ses propres classes génériques [Tutoriel]


Sujet :

C#

  1. #1
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut Créer ses propres classes génériques
    Le framework .NET propose toute une panoplie de classes dites génériques.
    L'exemple le plus connu est probablement les List<type> qui permet de créer des listes fortement typées.
    Ce mécanisme est puissant, et nous pouvons nous aussi définir des classes génériques dans nos développements applicatifs.
    Mais qu'est ce qu'une classe générique ?

    http://bdevuyst.developpez.com/tutor...es-generiques/


    donnez votre avis sur l'article
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  2. #2
    Membre averti Avatar de roster
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 397
    Points : 426
    Points
    426
    Par défaut
    Très pratique les sources pour bien assimiler le tout.
    Un grand merci!

  3. #3
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    Pas mal comme article, pour montrer les bases des classes generiques.

    Seul petit bemol, je ne trouve pas l'exemple super realiste (en fait, il serait peut-etre plus judicieux de faire une classe avec un contructeur acceptant les 3 interfaces, plutot que de faire un new sur les classes en question...mais c'est mon avis a moi que j'ai moi-meme ), et j'aimerais bien voir l'exemple du framework de DAL

    Vivement l'article sur ton framework de DAL

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    L'article est pas mal, il renseigne bien sur les bases.

    Je mettrais un bémol toutefois : tant qu'à faire un article qui fournit les bases de l'utilisation de la généricité, il est un peu dommage que seul le cas des classes soit abordé, pas celui des méthodes, interfaces et delegate génériques (toutes choses qui sont largement aussi utiles que les classes, au moins pour les deux premières).

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  5. #5
    Rédacteur
    Avatar de benji_dv
    Homme Profil pro
    Architecte
    Inscrit en
    Juillet 2005
    Messages
    375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 375
    Points : 1 276
    Points
    1 276
    Par défaut
    Effectivement, les remarques me semblent appropriées, concernant un exemple d'utilisation sur les delegates, ou interfaces, cela pourrait faire également l'objet d'un complément au tuto.
    Je ne voulais pas "brouiller" les pistes des personnes abordant ces concepts.

    Mais effectivement, remarques pertinentes, j'en tiendrai compte pour la suite.
    Merci bcp
    Benjamin DEVUYST
    Et comme l'a dit Rick Osborne
    "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live"
    http://bdevuyst.developpez.com
    http://blog.developpez.com/bdevuyst
    www.bdevuyst.com

  6. #6
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Tiens, c'est agréable de découvrir ce genre de choess en .NET.

    Est-ce qu'on peut "jouer" comme en C++ pour découper les classes selon ce que l'on appelle le "Policy Based Design" : http://alp.developpez.com/tutoriels/traitspolicies/ ?

    Ca assouplirait pas mal les designs et ça donnerait un énorme +.

  7. #7
    Membre émérite
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Points : 2 990
    Points
    2 990
    Par défaut
    J'ai vaguement survolé tous ces tutoriels sur les génériques, en m'attardant surtout sur celui de sjrd (Les génériques avec Delphi 2009 Win32).

    J'imagine que chaque tutoriel a ses propres objectifs et il est fort possible que mes commentaires qui suivent soient partiellement ou totalement hors-sujet.
    Disons qu'il s'agit plus d'un éclairage sur les génériques en général, de la façon de les comprendre et de les présenter, que d'une critique du présent tutoriel.

    Selon moi la notion de type générique est souvent introduite d'une façon trop indépendante des notions déjà acquises :
    • la généricité c'est avant tout paramétrer les types par des types
    • du coup on a des types arguments formels et des types arguments réels
    • la généricité se comporte d'une façon très similaire à l'application de fonction quant au nombre et à la compatibilité des types arguments


    Citation Envoyé par Créer ses propres classes génériques
    public class Vehicule <ClassChassis, ClassMoteur, ClassRoues>
    Cette syntaxe définit trois types manipulés au sein de ma classe (ClassChassis, ClassMoteur, ClassRoues)
    Ce sont 3 types formels.
    À mon avis le but d'un tutoriel sur la généricité c'est d'expliquer la différence entre types paramétrés, types concrêts, types formels et types réels. Ne pas expliquer cette différence c'est laisser le lecteur dans son ignorance du mécanisme de la généricité.

    C'est tout simple :
    1. List<T> est un type paramétré où T est le type argument formel
    2. List<Int32> est un type concrêt où Int32 est le type argument réel

    (ceux qui liront mon tutoriel sur les modules d'ordre supérieur pourront constater que ça marche aussi avec les modules, modules paramétrés, modules concrêts, modules formels et modules réels. en fait on a tout dit quand on a dit qu'un type générique est un type d'ordre supérieur)

    On a tout intérêt à réutiliser le vocabulaire connu surtout quand il est simple, clair et systématique.
    Une fois qu'on a introduit ces notion basiques on peut passer plus sereinement aux notions avancées (généricité contrainte, covariance/contravariance, traits,...) qui sont plus spécifiques à chaque langage. À la limite on devrait avoir un template de tutoriel sur les génériques, valable pour tous les langages majeurs du forum et qu'on spécialiserait pour chacun d'eux. En l'absence d'un tel tutoriel générique je suis d'avis que celui de sjrd est un modèle à imiter sans modération.
    Du même auteur: mon projet, le dernier article publié, le blog dvp et le jeu vidéo.
    Avant de poser une question je lis les règles du forum.

Discussions similaires

  1. [E-03] Créer ses propres objets / classes
    Par NikoBe dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/03/2009, 13h50
  2. [Struts][Validator] : créer ses propre validator
    Par anaon dans le forum Struts 1
    Réponses: 3
    Dernier message: 10/05/2006, 07h19
  3. [Struts]créer ses propres tag struts
    Par jeb001 dans le forum Struts 1
    Réponses: 3
    Dernier message: 08/09/2005, 19h56
  4. Programme permettant de créer ses propres paquets TCP/UDP
    Par mat087 dans le forum Développement
    Réponses: 6
    Dernier message: 21/05/2004, 21h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo