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

 .NET Discussion :

Information sur les attributs [C#]


Sujet :

.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2008
    Messages : 13
    Par défaut Information sur les attributs
    Bonjour,

    Tout d'abord j'espère être dans la bonne section (étant donné que je débute en C#)
    Cela fait plusieurs jours que je lis différentes documentations sur Développez.net, MSDN etc... sur l'utilisation des attributs. Je ne sais pas si c'est à cause de mes gènes blonds ... mais je n'arrive pas à comprendre à quel moment on se dit "Mais bien sur il faut que j'utilise un attribut pour ma classe" par exemple. Je fais bêtement les exercices mais sans arriver à réellement cerner l'utilité.

    J'ai bien compris que cela permet de paramétrer au moment de la programmation, mais dans quel cas l'utiliser là ça reste un mystère.

    Est-ce quelqu'un aurait un exemple concret ? un tuto dans ses favoris qui pourrait éclairer un gars dans mon genre ?

    Merci d'avance aux personnes qui prendront le temps de me lire.

  2. #2
    Membre Expert Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Par défaut
    Bonjour.

    Un attribut en lui-même n'a aucun effet. En revanche le compilateur ou un type tiers peut examiner les attributs d'un type décoré pour décider de procéder à une action.

    Exemple concret : le XmlSerializer . C'est une classe qui se charge de sérialiser un argument de n'importe quel type en un format XML pour une sauvegarde sur fichier ou un envoi vers un service web. En appelant XmlSerializer.Serialize(arg), cette classe va examiner par réflexion les membres de l'argument spécifié puis écrire les données dans un flux (stream) sous-jacent en inférant automatiquement le schéma XML. Bref, le programmeur n'a rien à écire et XmlSerializer se débrouille tout seul.
    Mais notre service web exige sans doute un schéma XML bien spécifique. Notre classe pourrait avoir une propriété nommée "Name" là où notre service attend, lui, un champ "ClientName". Pour remédier à cela on décorera la propriété Name de l'attribut [XmlAttribute(AttributeName="ClientName")] en spécifiant le nom à donner à ce champ lors de la sérialisation.

    Autre exemple : tu as une méthode que tu ne souhaites exécuter que lors de la compilation en mode debug. Tu ne veux pas qu'elle soit dans la version release car elle se contente de faire des vérifications afin de dénicher des bugs, ce qui impacte les performances. On appliquera alors l'attribut [Conditional("DEBUG")] à cette méthode et tout appel à celle-ci sera ignoré lors de la compilation en mode release.

    Etcetera. La seule règle est la suivante : les attributs sont utilisés soit par des types qui examinent les attributs d'autres types pour décider du comportement à suivre (méta-programmation), soit par le compilateur ou des outils de post-compilation (modification de l'assembly compilée pour ajouter ou supprimer automatique du code par exemple). Le but final est presque toujours d'automatiser certaines tâches pour simplifier le code ou le réduire.

  3. #3
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2008
    Messages : 13
    Par défaut
    Ok. Bon ce qui me rassure c'est que je ne suis pas si blond, je t'ai compris lol.

    Merci beaucoup pour cette explication.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Informations sur les langages/outils de ce forum
    Par Idelways dans le forum Autres langages
    Réponses: 3
    Dernier message: 14/02/2018, 12h08
  2. [LG]Informations sur les procédures
    Par noureddine9h dans le forum Langage
    Réponses: 3
    Dernier message: 09/02/2005, 21h23
  3. information sur les ps
    Par devalender dans le forum Débuter
    Réponses: 4
    Dernier message: 20/07/2004, 10h07
  4. Réponses: 6
    Dernier message: 28/04/2004, 10h41
  5. Informations sur les procédures stockées
    Par jfphan dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 13/01/2004, 14h30

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