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 :

Attributs, a quoi cela sert?


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 78
    Points : 48
    Points
    48
    Par défaut Attributs, a quoi cela sert?
    Bonjour,
    Je cherche à comprendre simplement ce que sont les attributs et surtout à quoi cela sert!! Je suis allé sur divers sites, mais franchement les explications sont alambiquées et l'on ne voit pas à quoi cela peut bien servir. Merci de votre aide.
    Michel

  2. #2
    Membre chevronné
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 652
    Points : 2 180
    Points
    2 180
    Par défaut
    Bonjour,

    Ce sont des méta-données tout simplement, comme la version "écrite" d'un enum ou préciser comment une classe doit être gérer dans un autre processus, comme la sérialisation ou un ORM. Et ce ne sont que quelques exemples parmi d'autres.

  3. #3
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 752
    Points : 5 457
    Points
    5 457
    Par défaut
    Les attribut sont instructions "simples" placées entre crochets au dessus d'une classe ou d'un membre d'une classe.
    Ils servent à associer des informations au code au dessus duquel ils sont placés.
    Ces informations sont lues par le Framework ou par les librairies que tu utilises pour définir un comportement à adopter.

    Sur cet exemple l'attribut [Required] spécifie que lorsqu'un champ d'un formulaire est validé, le champ doit contenir une valeur.
    Une exception de validation est déclenchée si la propriété est nulle, contient une chaîne vide ("") ou ne contient que des espaces blancs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public class Student {
       [Required]
       public string Id { get; set; }
       public string Name {get; set; }
    }

    https://learn.microsoft.com/fr-fr/do...ibute-tutorial

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 78
    Points : 48
    Points
    48
    Par défaut
    En fait tout est parti du fait que j'ai mis le nez dans MEF, et les attributs [Export] et [import] sont légions. Pas facile de comprendre tout cela.
    Michel

  5. #5
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 752
    Points : 5 457
    Points
    5 457
    Par défaut
    Le principe même de MEF repose sur ces attributs, il est donc normal d'en avoir sur chaque extension.
    Mais comme, tu l'as justement fait remarquer, même s'il sont massivement utilisés, il n'y a que [Import] et [Export], ce qui rend les choses fort simples.

    De mémoire,
    [Import] est utilisé par le programme afin d'exprimer quel contrat peut être étendu.
    [Export] est utilisé par l'extension qui remplit le contrat.

    Cette page explique assez bien le principe
    https://learn.microsoft.com/fr-fr/dotnet/framework/mef/

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 78
    Points : 48
    Points
    48
    Par défaut
    Merci pour le lien, j'étais déjà dedans, mais pas facile pour moi qui programme en Delphi de passer sur C#. En tous cas encore merci.
    Michel

  7. #7
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 752
    Points : 5 457
    Points
    5 457
    Par défaut
    J'ai également fait mes début avec Delphi (Delphi 7 à l'époque).
    Si la syntaxe change, les concepts fondamentaux restent relativement les mêmes.

    Mais Delphi a évolué et ces évolutions successives ont eu tendances à se rapprocher de plus en plus de C#.

    Je pense que tu as fait l'erreur de rester enfermé dans le Delphi que tu as appris et que tu as raté ces différentes évolutions.
    En effet, la notion d'attribut existe également en Delphi et sa syntaxe est la même qu'en C#
    https://docwiki.embarcadero.com/RADS...d_Type_Members

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 78
    Points : 48
    Points
    48
    Par défaut
    C'est tout à fait exact, mais les attributs ne me servaient pas, alors par fainéantise je n'ai pas regardé.

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/07/2010, 13h46
  2. RAID 0, 1 et 5 sur le même NAS, à quoi cela sert-ils ?
    Par beegees dans le forum Windows XP
    Réponses: 3
    Dernier message: 12/03/2010, 12h16
  3. Les décorateurs, à quoi cela sert-il ?
    Par rambc dans le forum Général Python
    Réponses: 3
    Dernier message: 08/02/2009, 19h38
  4. [Remoting] Question pratique: à quoi cela sert-il ?
    Par bootix dans le forum Framework .NET
    Réponses: 6
    Dernier message: 17/03/2006, 16h16
  5. [XSD] A quoi cela sert-il ? Comment l'utiliser ?
    Par s3r3nity dans le forum Valider
    Réponses: 1
    Dernier message: 18/12/2005, 00h05

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