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 :

stocker ses méthodes ailleurs


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 57
    Par défaut stocker ses méthodes ailleurs
    bonjour,

    j'essaye de faire un programme de calcul, et pour essayer de faire ça correctement et proprement, je souhaite utiliser des méthodes.

    Alors j'ai lu pas mal de truc sur la question, on trouve une multitude d'exemple de code pour des fonctions, mais ils ne précise nul par où on peut stocker ça :/

    je suis étonné parce que j'avais commencer a regarder le C++ avant de voir que le C# était plus adapté pour ce que je voulais faire, et dans les cours de C++ dès qu'on aborde les fonctions, on sait qu'on peut les stocker dans un autre .cpp et qu'on lie le tout avec un .h, mais là ... c'est assez floue je dois dire :/
    si quelqu'un pouvait m'éclairer svp

    merci

  2. #2
    Membre Expert
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    667
    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 : 667
    Par défaut
    Bonjour,

    Ça peut paraitre déroutant pour quelqu'un qui a débuté en C++ mais en fait c'est simplifié en C#.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        public class Mathematique
        {
            static public int Addition(int a,int b)
            {
                return a + b;
            }
        }
    Dans cette exemple , tu pourrais stocker tes méthodes de calculs dans une class Mathematique. Vu que la fonction Addition() nécessite que ses propres arguments pour fonctionner , tu peux la déclarer en static , ce qui signifie que tu peux y accéder en fesant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int résultat = Mathematique.Addition(5,3);
    Si , par contre , c'est une méthode qui nécessite un objet , il te faudra d'abord déclarer un objet pour accéder a la méthode , du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Personne personne1 = new Personne();
    personne1.Renommer("Robert");
    Dans ce cas la , Renommer() se trouve aussi dans la classe Personne , mais non statique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        class Personne
        {
            string prenom;
            string nom;
     
            public void Renommer(string prenom)
            {
                this.prenom = prenom;
            }
        }
    En espérant que ma réponse a pu t'aider.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 57
    Par défaut
    ok, merci pour la réponse
    du coup je peux stocker ça dans un autre fichier class si je veux avoir le code de mon programme plus claire ? (clic droid / ajouter /nouvel élement/ class)
    et j'ai acces a ma méthode depuis mon main ?

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    c'est ca
    le mot clé Static signifie que le membre n'est pas lié aux instances de la classe, mais à la classe lui même
    on peut donc l'appeler avec NomClasse.NomMembreStatic
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 57
    Par défaut
    ok !
    effectivement c'est simplifié par rapport au C++
    merci pour vos réponses !

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 57
    Par défaut
    j'avais mis la discussion en résolu mais je suis allé un peu trop vite, j'ai un autre soucis ...
    avec ce que vous m'avez donné comme info j'en suis arrivé là

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    static public class Grav
        {
     
            //données
            static int Dg = -2;
            static int x1 = 10;
            static int x2 = 12;
            static int y1 = 10;
            static int y2 = 8;
            static double z1 = 0.00001;
            static double z2 = 2.00001;
            static int [] point = { 10, 10, 0 };
     
            //calcul des dx
     
            static int dx1 = x1 - point[0];
            static int dx2 = x2 - point[0];
     
            //calcul des dy
     
            static int dy1 = y1 - point[1];
            static int dy2 = y2 - point[1];
     
            //calcul des dz
     
            static double dz2 = z1 - point[2];
            static double dz1 = z2 - point[2];
     
            //calcul de la dustance du point a tous les bords du prisme
            static double R111 = Math.Sqrt(dx1 * dx1 + dy1 * dy1 + dz1 * dz1);
            static double R112 = Math.Sqrt(dx1 * dx1 + dy1 * dy1 + dz2 * dz2);
            static double R211 = Math.Sqrt(dx2 * dx2 + dy1 * dy1 + dz1 * dz1);
            static double R212 = Math.Sqrt(dx2 * dx2 + dy1 * dy1 + dz2 * dz2);
            static double R221 = Math.Sqrt(dx2 * dx2 + dy2 * dy2 + dz1 * dz1);
            static double R222 = Math.Sqrt(dx2 * dx2 + dy2 * dy2 + dz2 * dz2);
            static double R121 = Math.Sqrt(dx1 * dx1 + dy2 * dy2 + dz1 * dz1);
            static double R122 = Math.Sqrt(dx1 * dx1 + dy2 * dy2 + dz2 * dz2);
     
            //Calcul des anomalies liees aux differents bords
     
            static double DG111 = -0.00667 * Dg * 1000 * (dz1 * Math.Atan(dx1 * dy1 / (dz1 * R111)) - dx1 * Math.Log(R111 + dy1) - dy1 * Math.Log(R111 + dx1));
            static double DG112 = -0.00667 * Dg * 1000 * (dz2 * Math.Atan(dx1 * dy1 / (dz2 * R112)) - dx1 * Math.Log(R112 + dy1) - dy1 * Math.Log(R112 + dx1));
            static double DG211 = -0.00667 * Dg * 1000 * (dz1 * Math.Atan(dx2 * dy1 / (dz1 * R211)) - dx2 * Math.Log(R211 + dy1) - dy1 * Math.Log(R211 + dx2));
            static double DG212 = -0.00667 * Dg * 1000 * (dz2 * Math.Atan(dx2 * dy1 / (dz2 * R212)) - dx2 * Math.Log(R212 + dy1) - dy1 * Math.Log(R212 + dx2));
            static double DG221 = -0.00667 * Dg * 1000 * (dz1 * Math.Atan(dx2 * dy2 / (dz1 * R221)) - dx2 * Math.Log(R221 + dy2) - dy2 * Math.Log(R221 + dx2));
            static double DG222 = -0.00667 * Dg * 1000 * (dz2 * Math.Atan(dx2 * dy2 / (dz2 * R222)) - dx2 * Math.Log(R222 + dy2) - dy2 * Math.Log(R222 + dx2));
            static double DG121 = -0.00667 * Dg * 1000 * (dz1 * Math.Atan(dx1 * dy2 / (dz1 * R121)) - dx1 * Math.Log(R121 + dy2) - dy2 * Math.Log(R121 + dx1));
            static double DG122 = -0.00667 * Dg * 1000 * (dz2 * Math.Atan(dx1 * dy2 / (dz2 * R122)) - dx1 * Math.Log(R122 + dy2) - dy2 * Math.Log(R122 + dx1));
     
            //somme des DG
     
            double anomalie = DG111 + DG112 + DG121 + DG122 + DG211 + DG212 + DG221 + DG222;
            return anomalie;
            }
    et mon soucis c'est sur la fin ... je n'arrive pas a récupérer la valeur de mes calculs
    "Jeton 'return' non valide dans la déclaration de membres de la classe, de la structure ou de l'interface"
    "Jeton ';' non valide dans la déclaration de membres de la classe, de la structure ou de l'interface"
    "'Grav.anomalie' est un 'champ' mais est utilisé comme un 'type'"

    tout ça pour mes deux pauvre derniers mots, si c'est pas un epic fail .... ^^

    (pour le moment mes premieres variables ont une valeur attribuée dans la méthode, mais c'est pour tester le passage du code en méthode, après j'essayerais de rentrer tout ça sous forme de paramètre de la méthode, mais j'y suis pas encore ^^)

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

Discussions similaires

  1. Stocker ses fichiers dans différents répertoires
    Par dtthierry dans le forum Langage
    Réponses: 1
    Dernier message: 22/09/2008, 17h05
  2. [MySQL] Comment "stocker" ses ordres sql ?
    Par Neal Morse dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 16/04/2008, 15h59
  3. Réponses: 5
    Dernier message: 12/09/2007, 09h18
  4. Réponses: 2
    Dernier message: 14/05/2007, 23h11

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