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

Windows Forms Discussion :

equivalent delphi en c#


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 17
    Points : 12
    Points
    12
    Par défaut equivalent delphi en c#
    bonjour,

    je débute en c# et je cherche des équivalents à ces 2 fonctions Delphi, si ca existe. merci pour l'aide

    pour l'utilisation du "in" et dans la déclaration du tableau les ".."
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
             for i := 1 to 15 do
               begin
                 if i in [1..7]      then ...
                 if i in [2,4,6]    then 
                 if i in [2,4,6,8,10..12] then 
               end;
    et dans le même ordre d'idée, le case/switch
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
       case i of
          1..5 :
          6 :
          9..16 :
          else
       end;
    merci

  2. #2
    Rédacteur

    Inscrit en
    Juin 2004
    Messages
    744
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Juin 2004
    Messages : 744
    Points : 1 352
    Points
    1 352
    Par défaut
    A ma conaissance il n'y a pas l'équivalent du 'in' en c#

    par contre le switch case existe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    switch (i)
    {
     case 1:
        xxxxxxx;
        break;
     case 2:
        xxxxxxxx;
        break;
     default:
        xxxxxxxx;
    }
    Ludovic,

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    je cherche a la fois un équivalent pour le "in" et le ".." pour l'énumération

  4. #4
    Membre habitué Avatar de NeraOne
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 218
    Points : 128
    Points
    128
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    for (int i = 1 ; i < 15 ; i++)
                 if (i >=1 && i <=7 && i % 2 != 0)
                   {//pas de then en C#
                   }
                 if (i >=2 && i <=6 && i % 2 = 0)
                   {
                   }
                 if (i >=2 && i <=12 && i % 2 = 0)
                   {
                   }
             }
    par contre pour le switch pour gérer les intervalle, je sais pas mais sinon un intervalle, c'est mathématiquement : i plus grand que XX et à la fois i plus petit que YY. Je vais regarder pour les intervalles en C# mais ca me dit rien du
    tout.
    ++
    Antoine

  5. #5
    Membre habitué Avatar de NeraOne
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 218
    Points : 128
    Points
    128
    Par défaut
    Avec une classe comme cela : tu peux te gérer les intervalles :
    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
    26
    27
    28
    public struct Intervalle<T> where T : IComparable<T> 
    { 
      T m_left; 
     
      public T Left 
      { 
      get { return m_left; } 
      set { m_left = value; } 
      } 
     
      T m_right; 
     
      public T Right 
      { 
      get { return m_right; } 
      set { m_right = value; } 
      }  
     
      public bool Contains(T value) 
      { 
      if (m_left.CompareTo(value) <= 0 && m_right.CompareTo(value) >= 0) 
      { 
      return true; 
      } 
     
      return false; 
      } 
    }
    et du coup ton switch donnera cela (ce sera pas un switch du coup) :
    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
    Intervalle<int> interval1; 
    Intervalle<int> interval2; 
    interval1 = new Intervalle<int>(); 
    interval2 = new Intervalle<int>(); 
     
    interval1.Left = 1; 
    interval1.Right = 5; 
     
    interval2.Left = 9; 
    interval2.Right = 16;
     
    int i = 5; 
     
    if (interval1.Contains(i)) 
    { 
      // Ton interval1 contient bien i :) 
    }
    if (interval2.Contains(i)) 
    { 
      // Ton interval2 contient bien i :) 
    }
    if (i == 9) 
    { 
      // i = 9
    }

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    merci NeraOne, je vais tacher d'utiliser ta classe
    et voir si tu trouves autre chose

  7. #7
    Membre habitué Avatar de NeraOne
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 218
    Points : 128
    Points
    128
    Par défaut
    Au niveau intervalle, à ma connaissance, tu ne peux pas gérer ça comme en Delphi, au demeurant très très pratique mais bon... Si quelqu'un pouvais me confirmer cela car je ne suis pas sur de moi...
    Sinon le mieux pour t'éviter la classe car ça peut devenir assez chiant à gérer, c'est de remplacer ton switch par une suite de if, else if comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (i < 3 && i > 6) {}
    else if (i < 7 && i > 15) {}
    else if (i < 16 && i > 20) {}
    else {/*Ce else est l'équivalent du default dans un switch*/}
    Ca paraît peut être un peu relou mais moi je fais comme cela en plus tu peux intégrer pleins de conditions avec les et (&&) et les ou (||). En fait le switch/case ne te permet de gérer que des valeurs ponctuelles en C#, pas d'intervalle.
    @++
    Antoine

  8. #8
    Membre actif
    Avatar de adaneels
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2006
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Août 2006
    Messages : 236
    Points : 210
    Points
    210
    Par défaut
    Bonjour,

    Avec l'arrivée du .NET 3.5, il n'y a pas eu d'améliorations sur ce point ?

    Exemple Delphi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    case i of 
      1..3 : mon_code_1;
      4, 6 : mon_code_2;
      5 : mon_code_3;
      else mon_code;
    end;
    qui équivaut en C# à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    switch (i) 
    {
      case 1:
      case 2:
      case 3: mon_code_1; break;
      case 4:
      case 6: mon_code_2; break;
      case 5: mon_code_3; break;
      default : mon_code; break;
    }
    ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if ((i>=1) && (i<=3))
    {
      mon_code_1;
    } else if ((i==4) || (i==6)) 
    {
      mon_code_2;
    } else if (i==5)
    {
      mon_code_3;
    } else {
      mon_code;
    }
    Là, il n'y a que 6 valeurs possibles, mais j'ai un truc avec 256 valeurs là ... ça risque d'être beaucoup moins lisible (et pratique) par rapport à la syntaxe Delphi !

Discussions similaires

  1. Equivalence Delphi / C++
    Par ambessa dans le forum Langage
    Réponses: 1
    Dernier message: 09/07/2008, 15h50
  2. Environnement equivalent à Delphi et C++ Builder
    Par b_reda31 dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 04/02/2008, 23h37
  3. Equivalents Delphi de quelques variables VB
    Par AL1986 dans le forum Langage
    Réponses: 6
    Dernier message: 19/08/2007, 12h26
  4. Equivalent Delphi de la classe App de VB
    Par AL1986 dans le forum Langage
    Réponses: 7
    Dernier message: 07/08/2007, 17h07
  5. Réponses: 2
    Dernier message: 11/07/2003, 18h24

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