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 :

[Debutant] Comment regrouper mes fonctions ?


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 25
    Par défaut [Debutant] Comment regrouper mes fonctions ?
    Bonjour,
    Je suis en train de faire un développement C# avec quelques formulaires et je me dis que répéter dans chaque formulaire mes définitions de fonctions cela ne doit pas être la bonne méthode...
    Comment faire une bibliothèque de fonctions/procédures et la partager dans toutes les formes ?

    Merci d'avance à ceux qui m'aideront.
    Cordialement,
    BigFellow

    Exemple de fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
            private void WriteLog(string sMessage)
            {
     
                var assembly = new FileInfo(Assembly.GetExecutingAssembly().Location);
                String strLogName = assembly.FullName.Substring(0, assembly.FullName.Length - 3) + "Log";
                using (StreamWriter writer = new StreamWriter(strLogName, true))
                {
     
                    writer.WriteLine("{0} - {1} - {2} - {3}", DateTime.Now.ToString(),Environment.UserName, Environment.MachineName,sMessage);
                }
     
            }

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    177
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 177
    Par défaut
    Si le contenu de tes méthodes est identique = Héritage

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public [abstract] class FBase : Form{
     
        //les fonctions identique
    }
     
    public class FFille : FBase{
       //les fonctions spécifiques à FFille
    }
    Si le contenu est différent = Interface

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public interface IForm{
     
       //les signatures des fonctions
    }
     
    public class FMaForm : Form,IForm
    {
       //le contenu des fonctions définies dans IForm
      //les fonctions spécifiques à FMaForm
     
    }

  3. #3
    Membre averti
    Inscrit en
    Février 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 25
    Par défaut
    Quelle réactivité !!
    Merci pour la réponse mais cela m'éclaire à moitié...

    Ce que je comprends c'est que comme mes fonctions/procédures (ce que vous appelez méthodes) seront toutes idendiques (ce sont des utilitaires) je dois plutôt choisir Heritage.

    Je dois les mettre toutes dans un fichier .CS que je dois structurer comment ?
    Et comment j'indique à mes formes qu'il faut utiliser ce fichier CS ?

    Comme je le dis plus haut ce sont des fonctions/procédures utilitaires à priori générique donc que je veux pouvoir appeler de n'importe où.

    Merci encore pour le coup de main.

    BigFellow

  4. #4
    Membre très actif Avatar de oussi
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Maroc

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

    Informations forums :
    Inscription : Octobre 2009
    Messages : 192
    Par défaut
    Salut,
    Pour moi j'utilise les classes static :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    public static class nomDeClasse
    {
            //pour les variables
            public static object nomVar;
     
            //pour les procedures et fonctions
            public static void nomProcedure(object param)
            {
     
            }
     
            public static void nomProcedure2(object param)
            {
     
            }
     
            public static string nomfonction(object param)
            {
     
            }
     
    }
    pour appeler tes methodes ou variables tu fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nomDeClasse.nomProcedure2(param);
    ....etc

    Donc tu l'aura compris c'est le mot clé static qui fait le truc.

    Cordialement,

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    177
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 177
    Par défaut
    Le static ne marchera pas s'il veut appelé des fonctions liées aux formulaires (il faut une instance).


    Pour la structure du fichier, tu met tout dans la classe dans l'ordre que tu veux (mais essaye quand même de les regrouper par type de fonctions, ça sera plus simple pour la retrouver.

    Apres une fois que tu as tes groupes de fonction, tu peux les mettre dans une région (au début tu met #region nomRegion et à la fin #endregion).

    Pour lui dire de l'utiliser ça dépend si la classe utilitaire est dans le même projet ou pas (s'il n'est pas dans le même projet,il faut ajouter une référence vers le projet de la classe utilitaire (de préférence, il vaut mieux avoir les classe utilitaire dans un projet à part (pour la réutilisation))).

    Si la classe utilitaire est pas dans le même namespace, il faut ajouter au début du fichier qui appellera la classe using nomDuNamespaceDeLaClasseUtilisataire ou alors tu met le nom complètement qualifié de la classe (namespace.nomClasse).


    Il faudrait nous indiquer ce que fait les fonctions pour qu'on puisse t'aider. Parce que classe utilitaire ça peut regrouper plusieurs chose (gestion des images ou des choses plus génériques mais plus personnels à tes form).

Discussions similaires

  1. Réponses: 4
    Dernier message: 23/03/2009, 22h07
  2. comment créer un document regroupant mes BL?
    Par joecogumelo dans le forum SAP
    Réponses: 1
    Dernier message: 22/03/2008, 22h15
  3. Comment créer mes propres fonctions
    Par matnes dans le forum MATLAB
    Réponses: 1
    Dernier message: 30/09/2007, 09h52
  4. Comment gérer mes liens créés par la fonction MM_Images ?
    Par gamory dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 28/05/2007, 00h52
  5. Réponses: 9
    Dernier message: 22/02/2007, 14h51

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