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 :

[C#] [VS2003] string accessible dans une autre class


Sujet :

C#

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Oise (Picardie)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 6
    Points : 2
    Points
    2
    Par défaut [C#] [VS2003] string accessible dans une autre class
    Pour une application sous PocketPC, je cherche à récuperer une string "S" qui est déclaré en public dans une autre class mais je n'y arrive pas.
    Quand je fais dans ma Class2


    Il m'est indiqué qu'une référence d'objet est requise.
    J'ai à peu pret tout essayé (using, extern ...) et je seche.
    Merci du coup de main!

  2. #2
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 18
    Points : 22
    Points
    22
    Par défaut
    Salut,

    Dans ton code, tu fais appel à la Class1 mais elle n'est pas instanciée ! Donc, ça passe pas.

    Si tu veux utiliser cette syntaxe, il faut une methode statique, qui te renverra la chaine demandée.

    ex :
    public static string GetInfo()
    {
    return "toto";
    }

    Class1.GetInfo() te renverra "toto", sans instancier la classe.

    Sinon, il te faut une propriété de type string dans ta classe, mais dans ce cas, tu devras instancier Class1 :

    Class1 MyClass1 = new Class1();
    string strInfo = MyClass1.GetInfo;


    Ensuite, l'utilisation va dépendre de ta problématique...

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Oise (Picardie)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    OK ça marche. Un peu compliqué tout de même.

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Oise (Picardie)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    J'ai parlé trop vite.
    return "toto"; ne provoque pas d'erreur mais
    return S; en cré une bien qu'il soit public

  5. #5
    Membre actif Avatar de wikipierre
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 222
    Points : 230
    Points
    230
    Par défaut
    Bonjour,
    Essaye ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    class class1
    {
    public static string viewString()
    {
     string S = ...;
     return S;
    }
    }
    Cela provoquais une érreur car il ne trouvais pas la string S.

    Ensuite pour l'appeler il te suffira de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string x = class1.viewString();
    Et la string x aura la même valeur que S.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Oise (Picardie)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    L'erreur je l'ai au moment ou je fais dans la Class de départ:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    class class1 
    { 
      private string COM="toto";
     
      public static string viewString() 
      { 
       string S = COM; // ICI même déclarée en public, ou class1.COM....
       return S; 
      } 
    }
    il me manque une reference d'objet.
    bien sur ca marche si je fais string S = "toto" mais ma string est initialisée ailleurs

  7. #7
    Membre actif Avatar de wikipierre
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 222
    Points : 230
    Points
    230
    Par défaut
    Salut,
    Le code que tu viens de me donner et le code que tu dois mettre la string est déclarée.

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Oise (Picardie)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Désolé je ne comprends pas ce que tu veux dire :

  9. #9
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    class class1 
    { 
          public static string S = "Ta chaine de caractère";
    }

    Pour l'appeller:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    string x = class1.S;

  10. #10
    Membre actif Avatar de wikipierre
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 222
    Points : 230
    Points
    230
    Par défaut
    Salut,
    Je résume :

    1) Crée une class ou rajoute le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public static string viewString() 
    { 
     string S = ...; 
     return S; 
    }
    Dans la class ou est déclaré la string S

    2) Ensuite pour récupérer la valeur de S tu dois faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string X = taClass.viewString();
    3) Normalement X a pris la même valeur que S.


    Je te conseil plutot d'utiliser la Transaction entre les forms ce sera plus simple et c'est fait pour ca.

  11. #11
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Apparemment beaucoup de tergiversations pour au demeurant un principe de base de POO
    Que veux-tu explicitement curium247 ?
    1. Acceder à une constante string de n'importe quel endroit de ton appli ? Dans ce cas Morpheus t'as donné une solution claire et sans détour, au mieux tu peux ajouter un ReadOnly ou encore mieux finalement l'ecrire dans ton App.Config et y acceder par la Classe ConfigurationSettings
    2. Acceder à une variable string : Là il est preferable que cette variable soit effectivement le fruit de l'instanciation d'une classe qui gère cette variable et l'expose dans un accesseur; c'est à dire qu'il faudra d'abord construire un objet de cette classe avant de prétendre à acceder à sa variable exposée, je ne vois pas en quoi celà est compliqué à moins bien sûr que la POO te semble compliquée

  12. #12
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Oise (Picardie)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    OK ca marche en créant une instance de la 1ere class dans la 2eme.
    Par contre je ne m'explique pas pourquoi dans la 1ere class, je crée une erreur en appelant ma string dans la fonction viewstring.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    class class1 
    { 
      private string COM="toto"; 
     
      public static string viewString() 
      { 
       string S = COM; // ICI même déclarée en public, ou class1.COM.... 
       return S; 
      } 
    }

  13. #13
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Contente -toi d'être classique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public class class1 
    { 
      private string COM;
      public string viewCOM() 
      { get { return this.COM; }}
      public class1()
      {
         this.COM = "toto";
      }
    }
    ainsi ceci necessitera ailleurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    class1 myclass = new class1();
    string myCom = myclass.viewCOM;

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/10/2012, 18h21
  2. Définir une classe dans une autre classe
    Par acieroid dans le forum C++
    Réponses: 7
    Dernier message: 22/05/2006, 00h24
  3. Probleme d'apel de fonction dans une autre classe
    Par freecell31 dans le forum MFC
    Réponses: 24
    Dernier message: 13/05/2006, 12h34
  4. Réponses: 1
    Dernier message: 05/05/2006, 15h37
  5. Acceder à un object qui se trouve dans une autre classe
    Par ceres02 dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 08/02/2006, 14h29

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