enum to String^



  • Grüss euch,

    wieder einmal verstehe ich etwas nicht und finde keine Lösung.

    Problem:

    enum class ColEnum {Rot, Gruen, Blau};
    
    int main(array<System::String ^> ^args)
    {
    Console::WriteLine(ColEnum::Rot); // gibt "Rot" als String auf der Konsole aus
    MessageBox::Show(ColEnum::Rot); // gibt einen Compilerfehler "kann nicht konvertiert werden"
    String^ Text = ColEnum::Rot; // Fehler...
    String^ Text = gcnew String(ColEnum::Rot); // auch Fehler
    };
    

    Da nun ja Console::WriteLine auch einen String erwartet bzw. ausgibt, verstehe ich die Fehler nicht und ein einfacher cast auf String funktioniert natürlich auch nicht. Gibt es hier eine einfache Lösung?


    Anmelden zum Antworten
     


  • Schau doch einfach mal, was WriteLine als Parameter alles übernimmt, die Auswahl ist groß.

    #include "stdafx.h"
    
    using namespace System;
    
    enum class ColEnum {Rot, Gruen, Blau}; 
    
    int main(array<System::String ^> ^args) 
    { 
    	Console::WriteLine(ColEnum::Rot); // gibt "Rot" als String auf der Konsole aus 
    	String^ Text = ColEnum::Rot.ToString(); // Fehler... 
    	String^ Text2 = gcnew String(ColEnum::Rot.ToString()); // auch Fehler 
    };
    
    public:
    static void WriteLine (
    	Object^ value
    )
    

    Wenn value NULL (Nothing in Visual Basic) ist, wird nur das Zeichen für den Zeilenabschluss geschrieben. Andernfalls wird die ToString-Methode von value aufgerufen, die die Zeichenfolgenentsprechung erstellt, und die resultierende Zeichenfolge wird in den Standardausgabestream geschrieben.

    Die Lösung wäre gewesen: F1 drücken



  • Vielen Dank 🙂

    Aber ohne Deinen Stups hätte ich das auch mit F1 nicht gefunden, denn ich konnte mit ToString() nichts anfangen (hatte ->ToString() und ::ToString() versucht.
    Selbst bei .ToString() hilft Intellisense nicht weiter (ich weiss, man soll sich darauf nicht verlassen). Das habe ich auch nicht, aber auf .ToString() wäre ich nicht gekommen.



  • Hm... Wann Du . und wann -> verwenden sollst weisst Du generell ?



  • Weiss ich und bin mit den Grundlagen durchaus vertraut (und viel mehr auch nicht). Viel zu lernen gibt es natürlich noch.


Anmelden zum Antworten