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 :

Appeler une classe située dans un meme projet


Sujet :

C#

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 194
    Points : 74
    Points
    74
    Par défaut Appeler une classe située dans un meme projet
    Bonjour,
    J'ai cherché sur le net mais je trouve pas de solution à ce probleme tout simple. J'ai un projet avec deux classes Default1.cs et Default2.cs.
    Les deux sont public, pourtant impossible d'appeler Default2.cs dans Default1.cs et vice versa.
    Y a t-il une chose que j'ai oublié???

  2. #2
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Plusieurs choses :
    • Default1.cs n'est pas une classe, c'est un fichier. Qui contient probablement une classe Default1, certes
    • Qu'entends-tu par "appeler" ?
    • Connais tu la programmation objet ?
    ಠ_ಠ

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 194
    Points : 74
    Points
    74
    Par défaut
    euh oui désolé effectivement les classes sont Default1 et Default2.
    Oui je connais la POO. Mes classes etant public elles devraient etre visible par dans l'ensemble de mon projet pourtant impossible de les instancier

  4. #4
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    ok
    Tu peux montrer ton code, et l'erreur que tu obtiens ?
    ಠ_ಠ

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 194
    Points : 74
    Points
    74
    Par défaut
    ok. En faite ce sont des classes liés à des pages aspx.
    J'ai crée une methode pour faire un mot de passe sur Default1 et je veux la réutiliser dans Default2.

    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
     
     
    public partial class Default1 : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
            }
     
          public Default1()
         {
          string mdp= string.Empty;
         }
    public static string getMd5Hash(string mdp)
            {
                //MessageBox.Show(mdp);
                MD5 md5Hasher = MD5.Create();
                byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(mdp));
                StringBuilder sBuilder = new StringBuilder();
                for (int i = 0; i < data.Length; i++)
                {
                    sBuilder.Append(data[i].ToString("x2"));
                }
                return sBuilder.ToString();
            }
    }
    et default2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public partial class Default2 : System.Web.UI.Page
        {
     
            protected void Page_Load(object sender, EventArgs e)
            {
                Default1 //impossible à instancier 
            }

  6. #6
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    La méthode est statique, donc tu ne peux pas l'appeler sur une instance de Default1, mais de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string bidule = Default1.getMd5Hash("machin");
    De plus, je te conseille de sortir cette méthode de Default1, puisqu'elle n'a rien à voir avec le périmètre de ta page. C'est une méthode utilitaire, relativement générale, que tu as intérêt à mettre dans une classe à part.
    ಠ_ಠ

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 194
    Points : 74
    Points
    74
    Par défaut
    Oui tu as raison. Mais de maniere generale, comment faire pour instancier Default1 dans Default2?

  8. #8
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Pour instancier une classe, la syntaxe est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Bidule m = new Bidule();
    Donc dans ton cas,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Default1 d = new Default1();
    ಠ_ಠ

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 194
    Points : 74
    Points
    74
    Par défaut
    Oui sa je sais, ma question été comment faire pour instancier une classe dans un autre fichier et en faite il faut faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        ImportCatalogPart NOM_DE_LA_CLASSE;

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/08/2009, 13h33
  2. [.net]Appeler une fonction située dans le code behind
    Par anto dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 20/05/2009, 13h05
  3. Réponses: 6
    Dernier message: 30/03/2009, 18h13
  4. comment appeler une classe java dans une page jsp?
    Par limalima dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 21/11/2008, 22h59
  5. appel d'une procedure situé dans un autre projet
    Par stdebordeau dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 24/10/2007, 16h30

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