none
c++ Erreur avec switch RRS feed

  • Question

  • Bonjour a tous  
    peut-on maider a resoudre mon problemeAvec ceci
    private: System::Void SetState(String^ appState)
    {
    MyState = appState;
    switch(MyState) 
     {
    case 'View':
     btnFirst->Enabled = true;
     btnPrev->Enabled = true;
     btnNext->Enabled = true;
     btnLast->Enabled = true;
     btnEdit->Enabled = true;
     btnSave->Enabled = false;
     btnUndo->Enabled = false;
     btnAdd->Enabled = true;
     btnDelete->Enabled = true;
     t1->ReadOnly = true;			
     t2->ReadOnly = true;
     t3->ReadOnly = true;
     t4->ReadOnly = true; 
     break; 
    default:
     btnFirst->Enabled = false;
     btnPrev->Enabled = false;
     btnNext->Enabled = false;
     btnLast->Enabled = false;
     btnEdit->Enabled = false;
     btnSave->Enabled = true;
     btnUndo->Enabled = true;
     btnAdd->Enabled = false;			 btnDelete->Enabled = false;
     t1->ReadOnly = false;
     t2->ReadOnly = false;
     t3->ReadOnly = false;
     t4->ReadOnly = false;
     break; 	
     }
     t1->Focus();
    }

     

    Je recoit toujours la meme erreur

    Erreur 1 error C2450: expression de switch de type
     'System::String ^' non conforme c:\documents and settings\daniel morais\mes documents\
    visual studio 2008\projects\c++\vc1\vc1\fContacts.h 480

    Merci

    dimanche 9 mai 2010 21:16

Réponses

  • Bonjour,

    Le switch ne peut s'utiliser qu'avec les types primitfs (char, int, enum,...etc). Il ne fonctionne pas avec les chaînes de caractères.

    Cordialement


    Gilles TOURREAU - MVP C# - Architecte .NET/Consultant/Formateur
    • Marqué comme réponse Alex Petrescu mercredi 12 mai 2010 08:23
    lundi 10 mai 2010 06:12
    Modérateur

Toutes les réponses

  • Bonjour,

    Le switch ne peut s'utiliser qu'avec les types primitfs (char, int, enum,...etc). Il ne fonctionne pas avec les chaînes de caractères.

    Cordialement


    Gilles TOURREAU - MVP C# - Architecte .NET/Consultant/Formateur
    • Marqué comme réponse Alex Petrescu mercredi 12 mai 2010 08:23
    lundi 10 mai 2010 06:12
    Modérateur
  • Bonjour Gilles

    Bonne journée

    Et Merci pour cette réponse

    Si j'ai bien compris il me faut trouver un remplacement avec un

    If()
    {}
    else

    A +

     


    BigDan
    lundi 10 mai 2010 15:18
  • Bonjour,

     

    Vous pouvez utiliser un if-else ou un enum avec switch.

     

    Cordialement,

    Alex


    Appel à contribution ! http://social.msdn.microsoft.com/Forums/fr-FR/vbasicfr/thread/bd974e0e-5519-4122-b8fc-3b998207c34f
    mercredi 12 mai 2010 08:29
  • Merci

    Je reguarde ce que peut faire

    Comme je commence en c++ j'ai essayer de convertir un de mes projets en c# en c++

    et je suis rendu compte il ne fonctionnait pas de la meme facon 

    Pas faute de vouloir mais je crois c est un peut trop complexe pour moi

    j arrive a tres bien fonctionner en VB et en c#

    Ouff! La, beaucoup trop de changement,  il va me faloir prendre mon temps avec celui-çi.

       Mais je me reprend plus tard a 57 ans la mémoire n'est plus ce quelle était

     

    Merci pour votre aides  je crois que je vais rester avec VB et C# pour l'instant

    A plus


    BigDan
    mercredi 12 mai 2010 13:16
  • Bonjour,

    Si vous souhaitez vous mettre au C++/CLI, il est nécessaire de bien maitriser .NET et C++ natif, sous peine de perdre des cheveux... Si vous utilisez C# ou VB, utilisez ces langages de programmation.

    Cordialement


    Gilles TOURREAU - MVP C# - Architecte .NET/Consultant/Formateur
    mercredi 12 mai 2010 15:42
    Modérateur