Déclarer une méthode globalement

khaldani83 Messages postés 7 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 18 septembre 2008 - 2 sept. 2008 à 17:17
khaldani83 Messages postés 7 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 18 septembre 2008 - 3 sept. 2008 à 15:10
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

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
2 sept. 2008 à 19:56
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.
0
khaldani83 Messages postés 7 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 18 septembre 2008
3 sept. 2008 à 12:12
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
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
3 sept. 2008 à 13:16
Module.connecter() dans l'evenement button1_click() n'existe pas?

Il y a peut etre une histoire de namespace derriere.

Fait un using namespacedumodule;
0
khaldani83 Messages postés 7 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 18 septembre 2008
3 sept. 2008 à 14:26
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
0

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

Posez votre question
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
3 sept. 2008 à 14:37
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()
0
khaldani83 Messages postés 7 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 18 septembre 2008
3 sept. 2008 à 15:10
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
0
Rejoignez-nous