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 :

faire appel à une methode non static a partir d'une methode static


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur Logiciel Système Embarqués
    Inscrit en
    Février 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur Logiciel Système Embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 32
    Points : 25
    Points
    25
    Par défaut faire appel à une methode non static a partir d'une methode static
    Bonjour, Je cherche sur les forums depuis quelque temps et je ne trouve pas vraiment de réponse. Étant a deux doigts de refaire tous mon code je vous pose quand même la question.

    C'est un exemple : J'ai une première méthode static qui me donne un nom "String" et une valeur "String" sans WindowsForm. Puis une seconde méthode non static (car plusieurs winfForm) qui récupère les valeurs de la première méthode et en fonction du nom, implante la valeur dans des Textbox par un système Switch.

    donc dans la méthode 1(static)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public static void methode1()
    {
     
    String nom = robert; // puis ensuite j'aurai Jeremi, puis Clément.. et ainsi de suite
    String valeur = 32; // ans ==> l'age des gens par exemple
     
    // je fait appel à la methode2 pour le classement des noms dans une textbox précise
     
    methode2( nom, valeur); // ET LA J'AI UN MESSAGE D'ERREUR DUE A L'APPEL 
    D'UNE MÉTHODE NON STATIC.
     
    }

    Puis je fait appel a la méthode 2 (non static).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public void methode2( String nom, String valeur)
    {
    Switch (nom)
     
       case Robert : 
          Texbox1.Text = valeur;
          breack;
       case Jeremi : 
           Textbox2.Text = valeur;
           breack;
    // Puis ainsi de suite avec tous mes prénoms.
    }
    Et ça Visual Studio ne veux pas!...

    Avant tout, est-ce que je m'y prend bien??

    Cordialement, Clément

  2. #2
    Invité
    Invité(e)
    Par défaut
    Dans Methode1, il faut que tu mettes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "NomClasse".Methode2();

  3. #3
    Membre éprouvé
    Avatar de Gurdil le nain
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2009
    Messages
    468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 468
    Points : 1 111
    Points
    1 111
    Par défaut
    Euh la méthode2() n'étant pas statique cela ne fonctionnera pas...

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur Logiciel Système Embarqués
    Inscrit en
    Février 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur Logiciel Système Embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 32
    Points : 25
    Points
    25
    Par défaut
    @gcorbineau : Les deux méthodes sont dans la même classe.

  5. #5
    Membre chevronné Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Points : 2 227
    Points
    2 227
    Par défaut
    Pour commencer, il faut bien comprendre ce qu'est une méthode statique :

    Citation Envoyé par MSDN
    Une méthode, champ, propriété ou événement statique peut être appelé sur une classe même si aucune instance de l'a classe n'a été créée. Si des instances de la classe sont créées, elles ne peuvent pas être utilisées pour accéder au membre statique. Une seule copie des champs et des événements statiques existe, et les méthodes et propriétés statiques peuvent uniquement accéder aux champs et aux événements statiques. Les membres statiques sont souvent utilisés pour représenter des données ou des calculs qui ne changent pas en fonction de l'état d'un objet

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur Logiciel Système Embarqués
    Inscrit en
    Février 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur Logiciel Système Embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 32
    Points : 25
    Points
    25
    Par défaut
    @Gurdil le nain : Le problème est que si je mets la méthode deux en static, toute les TextBox me donne le message d'erreur
    Erreur 27 Une référence d'objet est requise pour la propriété, la méthode ou le champ non statique.
    Donc je réfléchis à invoker la méthode.. Qu'en pensez vous?

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur Logiciel Système Embarqués
    Inscrit en
    Février 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur Logiciel Système Embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 32
    Points : 25
    Points
    25
    Par défaut
    Les membres statiques sont souvent utilisés pour représenter des données ou des calculs qui ne changent pas en fonction de l'état d'un objet
    Je ne comprend pas se que veux dire ''qui ne changent pas en fonction de l'état d'un objet''

    Donc si je comprend bien les méthode static ne peuvent être appeler que par elles même? Donc impossibilité de les appeler par autre alors?

  8. #8
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 181
    Points : 4 495
    Points
    4 495
    Par défaut
    Citation Envoyé par cdumargu Voir le message
    @Gurdil le nain : Le problème est que si je mets la méthode deux en static, toute les TextBox me donne le message d'erreur "Erreur 27 Une référence d'objet est requise pour la propriété, la méthode ou le champ non statique". Donc je réfléchis à invoker la méthode.. Qu'en pensez vous?
    Le plus simple c'est d'expliquer ce que tu veux reellement faire (et pas le comment)

    Si c'est pour échanger des messages entre form il existe plusieurs techniques
    Utiliser la technique des events
    Passer un paramettre (la form ou un objet) au constructeur ou bien mettre une une propriété à disposition

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur Logiciel Système Embarqués
    Inscrit en
    Février 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur Logiciel Système Embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 32
    Points : 25
    Points
    25
    Par défaut
    @BenoitM :

    "J'ai une première méthode static qui me donne : un nom "String" et une valeur "String" ( cette méthode ne fait appel à aucun Textbox). Puis une seconde méthode non static (car cette méthode fait appel à plusieurs Textbox) qui récupère les valeurs de la première méthode et en fonction du nom, implante la valeur dans des Textbox par un système Switch. "

    Dsl je mets winForm au lieu de Form.. Je débute et je n'ai pas le bon vocabulaire..

  10. #10
    Membre chevronné Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Points : 2 227
    Points
    2 227
    Par défaut
    Citation Envoyé par cdumargu Voir le message
    Je ne comprend pas se que veux dire ''qui ne changent pas en fonction de l'état d'un objet''

    Donc si je comprend bien les méthode static ne peuvent être appeler que par elles même? Donc impossibilité de les appeler par autre alors?
    Ce n'est pas ça qu'il faut comprendre.
    Une méthode statique est par définition indépendante des instances de la classe, elle est initialisée avant que les instances existent. De fait, tu ne peux pas utiliser une méthode statique pour accéder à une instance.

    Le seul moyen dans ton cas serait de passer un paramètre à ta méthode statique pour qu'elle puisse agir dessus, comme l'a proposé BenoitM.

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur Logiciel Système Embarqués
    Inscrit en
    Février 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur Logiciel Système Embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 32
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par Er3van Voir le message
    Le seul moyen dans ton cas serait de passer un paramètre à ta méthode statique pour qu'elle puisse agir dessus, comme l'a proposé BenoitM.
    He ben c'est ce que je vais faire de suite. Merci pour votre aide. Cordialement.

Discussions similaires

  1. Réponses: 0
    Dernier message: 09/12/2009, 11h57
  2. Réponses: 1
    Dernier message: 05/03/2009, 12h26
  3. appel d'un java web service à partir d'une page web
    Par issamos4 dans le forum Services Web
    Réponses: 2
    Dernier message: 31/05/2007, 14h26
  4. [HTML] Appel d'un programme en C à partir d'une page HTML
    Par paihpaihtte dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 10/04/2007, 22h33
  5. [XSLT] faire un tableau à 2 colonnes à partir d'une liste ?
    Par Gob0_ dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 17/08/2006, 11h14

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