Déclarer une méthode globalement

Signaler
Messages postés
7
Date d'inscription
vendredi 5 mai 2006
Statut
Membre
Dernière intervention
18 septembre 2008
-
Messages postés
7
Date d'inscription
vendredi 5 mai 2006
Statut
Membre
Dernière intervention
18 septembre 2008
-
Comment puis-je déclarer une méthode d'une manière globale sans avoir la redéfinir plusieurs fois

sachant que je developpe avec asp.net en utilisant le langage c#
merci

khalid

6 réponses

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
28
Salut,

Une méthode ne se programme pas de maniere global
il faut la mettre dans une classe

Ensuite soit tu mets ta methode en static
pour ne pas avoir d'instanciation a faire.
Maclass.MaMethode()

Ou tu utilises le design pattern singleton.

maclass.getInstance().MaMethode():

bon courage.
Messages postés
7
Date d'inscription
vendredi 5 mai 2006
Statut
Membre
Dernière intervention
18 septembre 2008

bonjour,
 j'ai fais ce que vous m'avez demander, j'ai créé une classe nommée module où j'ai ajouté une méthode  static nommée connecter() et sur l'événement click du bouton qui appartient à une autre classe il ne reconnus pas la classe module?? Il m’affiche : module n’existe pas dans le contexte actuel
pourquoi?

ps: les classes sont en des fichier séparés
l'événement button1_click() appartient à la classe default.aspx.cs

merci

khalid
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
28
Module.connecter() dans l'evenement button1_click() n'existe pas?

Il y a peut etre une histoire de namespace derriere.

Fait un using namespacedumodule;
Messages postés
7
Date d'inscription
vendredi 5 mai 2006
Statut
Membre
Dernière intervention
18 septembre 2008

j'ai y pensé mais toujours le meme probeleme  il affiche :
le type ou le nome d'espace globale est intoruvable (une directive using ou d'assembly est-elle manquante?)
ben normalement j'ai mis using globale!!

voici les séquences de code que j'utilise:
pour la classe où il y ma methode pour se connecter:

sing System;
using System.Data;
using System.Data.OleDb;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;


/// <summary>
/// Description résumée de Class1
/// </summary>
///
namespace globale
{
    public class Module
    {
        public Module()
        {
            //
            // TODO : ajoutez ici la logique du constructeur
            //
        }


        public  static string methode()
        {
            try
            {
  string chaine = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=chemin\\aficxint.mdb"


                OleDbConnection connect = new OleDbConnection(chaine);
                connect.Open();
                l1.Text = "connection established";
            }
            catch (Exception ex)
            {
                l1.Text = ex + "erreur connexion";
            }
        }
    }
}

pour le fichier defaule.aspx.cs:

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using globale;




public partial class default: System.Web.UI.Page
{
   static string chaine = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=aficxint.mdb";
    protected void Page_Load(object sender, EventArgs e)
    {


    }
   
    protected void connect_now(object sender, EventArgs e)
    {
        l1.Text = class1.methode();
     
    }
}

khalid
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
28
Utilises un singleton pour faire ca car les instanciations static ca ne marche pas.

new OleDbConnection --> ne compilera pas

class1.methode(); n'existe pas c'est Module.methode();
qu'il faut utiliser

Mais soit tu utilises un singleton soit tu utilises comme un objet

Module mod = new Module();
meod.methode()
Messages postés
7
Date d'inscription
vendredi 5 mai 2006
Statut
Membre
Dernière intervention
18 septembre 2008

Merci pour la reponse,
enfait j'ai mis dans mon  code ---> Module.methode(); et sa marche pas
d'ailleur le prob c'est que le namespace globale n'est pas introuvable??? meme si j'utilise using globale
c'est vraiment ding !!

une autre question svp:
pour declarer mon rep où se trouve ma base sans avoir taper tous le chamin comment puis-je faire???
a titre d'information l'attirubt Application.ExecutablePath;
 n'existe pas sous asp.net avec c#
merci encore une fois

khalid