Erreur 1 Une référence d'objet est requise pour la propriété, la méthode ou le c

vincent3360 Messages postés 27 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 13 mai 2011 - 25 mars 2011 à 11:21
vincent3360 Messages postés 27 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 13 mai 2011 - 1 avril 2011 à 09:37
Bonjour
Je viens de créer une classe CSwitch.cs



using System;
using System.Collections.Generic;
using TestTelnet;
using CREPS_VLANS; 
using System.Net.Sockets; 
using System.Text;
 
namespace TestTelnet
{
    public class CSwitch : CREPS_VLANS.CEquipementRéseau 
    
    {
 
        static private string NomVlan;
        static private string Port;
        static private string Frame; 
 
        // le mot clé base désigne la classe de base 
 
        public   CSwitch(string Nom_Vlan, string _Port, string _Frame)
            : base(adresseIP, login, mot_de_passe) 
        {
            NomVlan = Nom_Vlan;
            Port = _Port;
            Frame = _Frame;
 
        }
 
 
        public string Affecter_Port_Vlans()
        {
        this.Connecter(); 
        string commande = "SET VLAN="+NomVlan+"Ports=" + Port + "Frames=" + Frame ; 
        this.Deconnecter(); 
        return(commande) ; 
 
        }
 
 
    }
}




et j'ai ces erreurs suivantes , j'ai beau chercher et je ne trouve pas la solution :


Citation:
Erreur 3 Une référence d'objet est requise pour la propriété, la méthode ou le champ non statique 'CREPS_VLANS.CEquipementRéseau.mot_de_passe' D:\Projet\TestTelnet\CSwitch.cs 21 38 TestTelnet


Erreur 2 Une référence d'objet est requise pour la propriété, la méthode ou le champ non statique 'CREPS_VLANS.CEquipementRéseau.login' D:\Projet\TestTelnet\CSwitch.cs 21 31 TestTelnet


Erreur 1 Une référence d'objet est requise pour la propriété, la méthode ou le champ non statique 'CREPS_VLANS.CEquipementRéseau.adresseIP' D:\Projet\TestTelnet\CSwitch.cs 21 20 TestTelnet

Merci de votre aide

7 réponses

cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
25 mars 2011 à 11:41
Salut,

je dirais que le souci vient de ton constructeur. Tu fais appelle au constructeur de la classe mère, avec des paramètres qui n'existent pas. Il devrait ressembler à un truc comac :
public   CSwitch(string Nom_Vlan, string _Port, string _Frame, string adresseIP, string login, string mot_de_passe)
            : base(adresseIP, login, mot_de_passe) 
        {
            NomVlan = Nom_Vlan;
            Port = _Port;
            Frame = _Frame;
 
        }


A tester, bon code.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
25 mars 2011 à 15:09
même chose...

base(adresseIP, login, mot_de_passe)

ok, mais ces paramètres/valeurs ne sont définies nulle part (enfin, pas dans le code que tu nous as soumi)

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
vincent3360 Messages postés 27 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 13 mai 2011 2
26 mars 2011 à 10:14
en faite les paramètres addresse ip , login et mot de passe sont définis dans une autre classe : CEquipementRéseau.cs


using System;
using MinimalisticTelnet;
using TestTelnet;
using System.Net.Sockets; 

namespace CREPS_VLANS 
{
/// <summary>
/// Description résumée de CEquipementRéseau.
/// </summary>
public class CEquipementRéseau
{
// attributs de la classe : 

      protected string adresseIP;
      protected string login;
          protected string mot_de_passe; 
          private TelnetConnection TC;

// constructeur de la classe: 
public   CEquipementRéseau  (string adresse_IP , string l , string mdp)
{
adresseIP=adresse_IP; 
login=l; 
mot_de_passe=mdp; 
    
}

        // méthode de la classe : Connecter 
public string Connecter()
{
//numero du port
int NumeroDePort = 23;
//creation d'un nouvel object TelnetConnection
TC = new TelnetConnection(adresseIP, NumeroDePort);
string s = TC.Login(login, mot_de_passe,300);

//pour test en debugage
Console.Write(s);
 
// server output should end with "$" or ">",
//otherwise the connection failed
// enlever espaces à la fin
string prompt = s.TrimEnd();
// prendre dernier caractère
prompt = s.Substring(prompt.Length -1,1);
            if (prompt != "$" && prompt != ">" && prompt != "#" )
throw new Exception("Connection échouée");

return("Connexion Réussie !!");
}

        // méthode de la classe CEquipementRéseau : Déconnecter
public string Deconnecter()
{

//commande 'logout' permettant de deconnecter la session
string commande = "logout";
//variable qui stockera les chaine du serveur
string str_retour;

//ecris la commande du textbox vers le serveur
TC.WriteLine(commande);
//recupere le retour du serveur ds une variable
str_retour = TC.Read();

//affiche dans une console pas obligatoire
Console.Write(str_retour);
return("Déconnection Réussie ");

}
      
        //méthode de la classe CEquiepementRéseau : Exécuter Commande
public string Executer_Commande(string commande)
{
//variable qui stockera les chaine du serveur
string str_retour;

//ecris la commande du parametre sur le serveur
TC.WriteLine(commande);

//recupere le retour du serveur dans une variable
str_retour = TC.Read();

//affiche ds une console pas obligatoire
Console.Write(str_retour);

return(str_retour);
}
       
 
}


}




0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
26 mars 2011 à 17:34
oui, donc inaccessibles a ton constructeur de cswitch

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vincent3360 Messages postés 27 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 13 mai 2011 2
26 mars 2011 à 18:14
donc si je met comme tu m'as dit plus haut , je n'aurais aucun problème?
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
28 mars 2011 à 12:02
Re,

petite précision : l'usage du constructeur de la classe mère avec cette syntaxe, c'est comme l'appel d'une fonction normale. Et appeler une fonction avec des paramètres qui n'existent pas ... ben ça coince ^^
0
vincent3360 Messages postés 27 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 13 mai 2011 2
1 avril 2011 à 09:37
ok c'est bon ça marche
0
Rejoignez-nous