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

Windows Forms Discussion :

Comment créer une librairie pour y mettre les fonctions et les constante dedans ! C#


Sujet :

Windows Forms

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2012
    Messages : 10
    Points : 6
    Points
    6
    Par défaut Comment créer une librairie pour y mettre les fonctions et les constante dedans ! C#
    Bonjour tout le monde.

    j'ai créer un projet de type windows universal sous visual studio et j'ai créer beaucoup de fonction et de constante dans le namespace nommé accelerometer.

    je voudrais savoir est ce qu'il y a un moyen de créer un autre fichier C# ou librairie pour y mettre toutes ces fonctions et les constante pour que je puisse alleger un peux le code source principale.

    est ce possible ?

  2. #2
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2014
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Août 2014
    Messages : 218
    Points : 493
    Points
    493
    Par défaut
    Bonjour

    Ta description n'est pas très claire, mais je suppose que tu parles d'une classe "static" : https://msdn.microsoft.com/fr-fr/library/79b3xss3.aspx

    Accessoirement :
    - les "fonctions" ça n'existe pas en C#, on ne connait que les "méthodes" (pouvant retourner un résultat ou pas) et les "propriétés".
    - contrairement à, par exemple, Java, la notion de fichier n'est pas liée à celle de classe en C# (sauf par compportement par défaut de l'IDE) : une classe peut être éclatée sur plusieurs fichiers sources et un fichier source peut contenir plusieurs classes (ce qui n'est pas recommandé en général).
    Beaucoup trop d'hommes viennent au monde : l'Etat a été inventé pour ceux qui sont superflus. (Friedrich Nietzsche)

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2012
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    OK je vous explique un peux,

    je suis en train de faire un projet de type windows universal sous visual studio pour ma carte raspbperry pi 2. cette derniere tourne sous windows 10 IOT.

    je communique avec une puce electronique dont le role est de mesurer l'energie a travers le protocole serie I2c. Bref c'est pas ca mon probleme.
    le probleme et que je dois definir dans mon code principale l'adresse des registres et il y en a plein

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    private const UInt16 MASK0_Addr = 0xE50A;
    private const UInt16 MASK1_Addr = 0xE50B;
    private const UInt16 IAWV_Addr = 0xE50C;
    private const UInt16 IBWV_Addr = 0xE50D;
    private const UInt16 ICWV_Addr = 0xE50E;
    private const UInt16 INWV_Addr = 0xE50F;
    ........
    Il y a presque une cinquantaine adresse pour registres a definir encore.

    en plus j'ai créer des fonctions de lecture et d'ecriture et d'autre fonction que je veux aussi m'en débarrasser du programme principale et les mettres dans un autre fichier ou librairie

    si j'etais sous le language C j'aurais créer un autre fichier source par exemple Function.c avec son fichier d'en tete Function.h et mettre dedans toutes ces constantes et fonctions repetitive. ensuite il suffit d'inclure ce fichier dans mon code principal #include "Function.h"




    Donc je voudrais savoir s'il y a une solution de ce genre avec le C# ?? t merci

  4. #4
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2014
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Août 2014
    Messages : 218
    Points : 493
    Points
    493
    Par défaut
    Citation Envoyé par tizana Voir le message
    Donc je voudrais savoir s'il y a une solution de ce genre avec le C# ?? t merci
    La réponse est celle que je t"ai donnée supra : une classe statique.
    Beaucoup trop d'hommes viennent au monde : l'Etat a été inventé pour ceux qui sont superflus. (Friedrich Nietzsche)

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Points : 762
    Points
    762
    Par défaut
    Fais pareil qu'en C ; une nouvelle classe (clic droit / nouvelle classe sur ton projet ) colle tes attributs et passes les en public sinon tu ne les verras pas. Pas besoin d'une classe statique s'ils sont constants.
    Sinon tu peux faire un enum que tu mets dans un nouveau fichier.cs. Pas forcément besoin qu'il soit dans une classe ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public enum ADRESSES : ushort
    {
        MASK0_Addr = 0xE50A,
        MASK1_Addr = 0xE50B,
        IAWV_Addr = 0xE50C,
        IBWV_Addr = 0xE50D,
        ICWV_Addr = 0xE50E //etc...
    }
    Faire une librairie n'a d’intérêt que si tu veux partager les mêmes fonctions / contantes / classes entre plusieurs exécutables. Ceci pour le ne pas multiplier les mêmes lignes de code.

  6. #6
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2014
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Août 2014
    Messages : 218
    Points : 493
    Points
    493
    Par défaut
    Citation Envoyé par lead8209 Voir le message
    Pas besoin d'une classe statique s'ils sont constants.e.
    Créer une classe non static dont l'instanciation ne sert à rien (pas de membre d'instance) n'est pas génant mais est quand même un peu bizarre.
    Et rien n'empêche de metrre des const dans une classe static.

    Sinon, il n'y pas de difference majeure entre une variable const et une variable static readonly mais il y en a.

    le const peut s'utiliser dans un switch en argument case, pas le static readonly et concernant le const il y a semble-t-il (pas testé) un bug assez amusant; voir ici : http://answers.unity3d.com/questions...#answer-486904
    Beaucoup trop d'hommes viennent au monde : l'Etat a été inventé pour ceux qui sont superflus. (Friedrich Nietzsche)

  7. #7
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    l'enum est une bonne astuce mais elle ne fonctionne pas si :
    - on a des constantes de types non entier,
    - on a des doublons de valeurs,
    - on veut des méthodes.
    Après, rien n'empêche de mettre cette enum dans une classe statique.

    Pour revenir à la première question s'il s'agit de partager du code entre différentes applications il faut effectivement passer par un projet librairie (je sais pas comment ça fonctionne avec WUA par contre), s'il s'agit juste d'accéder à ses constantes à travers toutes tes classes d'une même appli alors une classe statique semble convenir.
    Plus je connais de langages, plus j'aime le C.

  8. #8
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 233
    Points : 336
    Points
    336
    Par défaut
    Vous êtes sûrs qu'il demande pas plutôt une explication sur le principe Solution/Projet et référence à des dll ?
    "Hope for the best, but prepare for the worst."

  9. #9
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2014
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Août 2014
    Messages : 218
    Points : 493
    Points
    493
    Par défaut
    Citation Envoyé par casiii Voir le message
    Vous êtes sûrs qu'il demande pas plutôt une explication sur le principe Solution/Projet et référence à des dll ?
    Comme il n'est pas revenu depuis le 3/07, il n'y a pas vraiment moyen de le savoir.
    Beaucoup trop d'hommes viennent au monde : l'Etat a été inventé pour ceux qui sont superflus. (Friedrich Nietzsche)

Discussions similaires

  1. Réponses: 10
    Dernier message: 26/03/2008, 22h37
  2. Réponses: 4
    Dernier message: 20/08/2006, 16h20
  3. [VB]Comment créer une propriété pour un activex
    Par darksantor dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 08/06/2006, 21h17
  4. Réponses: 4
    Dernier message: 24/03/2006, 16h49
  5. Réponses: 7
    Dernier message: 29/07/2005, 09h51

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