none
convertir un module vb en c# RRS feed

  • Question

  • bonjour, j'ai de gros souci, j'ai eu l'habitude de travailler avec vb.net. Mais la j'aimerais passé au c#; seulement voila: en Vb, je declare mes variables globale dans un module , ceci me permet de les utiliser partout dans mon code, quelque soit le formulaire. iol en est de meme pour les requetes d'acces au données

    comment reproduire cela en C#, j'ai deja totu essayé!!

    cordialement


    Marcelle NGOUNOU
    lundi 18 avril 2011 14:32

Réponses

  • Je ne fais pas normalement des variables globales car j'aime bien gardé mes variables dans leur contexte. Ceci étant dit, ce que je peux vous conseiller c'est de vous créer une classe statique(static) publique et d'y mettre vos variables dans celle-ci. Ensuite vous n'avez qu'à faire:

    MaClasseStatique.MaVariable = UneValeur;
    


    Microsoft MVP C# || gabrielmongeon.com || LinkedIn
    • Marqué comme réponse marclas lundi 18 avril 2011 15:01
    lundi 18 avril 2011 14:41
    Modérateur
  • en fait il faut mettre le terme public ainsi ca devien:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace SGFD
    {
        public  static  class ModuleVariablePublic
        {
          static  public string Test;
        static public     BD_SGFDDataSet  MonDataset = new BD_SGFDDataSet ();
         static   public string GenerationNumeroBonLivraison(ref string CodeSce, ref string Table,ref string RefCourrier)
            {}

    }

    }

    ainsi dans mon code je peut ecrire ModuleVariablePublic. test ="toto"

    Merci Gabriel;


    Marcelle NGOUNOU
    • Marqué comme réponse marclas lundi 18 avril 2011 15:01
    lundi 18 avril 2011 14:58

Toutes les réponses

  • Je ne fais pas normalement des variables globales car j'aime bien gardé mes variables dans leur contexte. Ceci étant dit, ce que je peux vous conseiller c'est de vous créer une classe statique(static) publique et d'y mettre vos variables dans celle-ci. Ensuite vous n'avez qu'à faire:

    MaClasseStatique.MaVariable = UneValeur;
    


    Microsoft MVP C# || gabrielmongeon.com || LinkedIn
    • Marqué comme réponse marclas lundi 18 avril 2011 15:01
    lundi 18 avril 2011 14:41
    Modérateur
  • bonjour,

    Merci

    voila un bout de mon code

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace SGFD
    {
        public  static  class ModuleVariablePublic
        {
            public string Test;
            BD_SGFDDataSet  MonDataset = new BD_SGFDDataSet ();
            public string GenerationNumeroBonLivraison(ref string CodeSce, ref string Table,ref string RefCourrier)
            {
                string Month;
                int Mois = DateTime.Today.Month;
                if (Mois < 9)
                { Month = "0" + Mois; }
                else { Month = Mois.ToString(); }
                int year = DateTime.Today.Year;
                string leCode = "RECON" + Month + year + "-";
                //t_DEMANDE_DEMTableAdapter.FillByRefCourrier(MonDataset.T_DEMANDE_DEM);
                if (MonDataset.T_BORDEREAU_BOR .Rows.Count != 0)
                {
                    string LastCourrier = MonDataset.T_BORDEREAU_BOR [0].REFERENCE_RECON.ToString();
                    int indice = Int32.Parse(LastCourrier.Trim().Substring(12, 4));
                    if (indice < 9)
                    {
                        indice++;
                        leCode = leCode + "000" + indice;
                    }
                    else if (indice >= 9 && indice < 99)
                    {
                        indice++;
                        leCode = leCode + "00" + indice;
                    }
                    else if (indice >= 99 && indice < 999)
                    {
                        indice++;
                        leCode = leCode + "0" + indice;
                    }
                    else if (indice >= 999 && indice < 9999)
                    {
                        indice++;
                        leCode = leCode + indice;
                    }

                    return leCode;
                }
                else
                {
                    leCode = "RECON" + Month + year + "0001";
                    return leCode;

                }
            }
        }
    }

     a lz compilation j'ai les erreurs suivantes:

    Error    3    'SGFD.ModuleVariablePublic.Test': cannot declare instance members in a static class    C:\SGFD\SGFD\SGFD\ModuleVariablePublic.cs    10    23    SGFD
    Error    4    'SGFD.ModuleVariablePublic.MonDataset': cannot declare instance members in a static class    C:\SGFD\SGFD\SGFD\ModuleVariablePublic.cs    11    25    SGFD

    Bref je en peux toujours pas utiliser mon module et accéder a ses elements

    cordialement


    Marcelle NGOUNOU
    lundi 18 avril 2011 14:51
  • bonjour ,

    j'ai fait preceder la fonction du mot static, ainsi que les autre elements,

    mais je n'accede toujours pas a ma variable

    cordialement


    Marcelle NGOUNOU
    lundi 18 avril 2011 14:56
  • en fait il faut mettre le terme public ainsi ca devien:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace SGFD
    {
        public  static  class ModuleVariablePublic
        {
          static  public string Test;
        static public     BD_SGFDDataSet  MonDataset = new BD_SGFDDataSet ();
         static   public string GenerationNumeroBonLivraison(ref string CodeSce, ref string Table,ref string RefCourrier)
            {}

    }

    }

    ainsi dans mon code je peut ecrire ModuleVariablePublic. test ="toto"

    Merci Gabriel;


    Marcelle NGOUNOU
    • Marqué comme réponse marclas lundi 18 avril 2011 15:01
    lundi 18 avril 2011 14:58
  • Effectivement, par défaut, l'accessibilité des classes, fonctions et variables est Private, à moins de le spécifier.

    Au plaisir!


    Microsoft MVP C# || gabrielmongeon.com || LinkedIn
    mardi 19 avril 2011 15:40
    Modérateur