String Array Deklaration



  • Hallo,
    ich hätte mal einen (wahrscheinlich) einfache Frage.
    Wie kann ich unter VC++ 2008 einen String Array Deklarieren?
    Habe irgendwie nichts passendes gefunden.

    array<String^>^ test[10];
    
    test[0] = "Hallo Welt";
    

    funktioniert nicht.



  • array<String^>^ strings = gcnew array<String^>[10];
    


  • Kann ich das so in den Deklarationteil der Klasse schreiben?
    Die Syntax hätte ich eher inneralb einer Methode vermutet.



  • tompkins schrieb:

    Kann ich das so in den Deklarationteil der Klasse schreiben?

    Nein.

    tompkins schrieb:

    Die Syntax hätte ich eher inneralb einer Methode vermutet.

    Genau. z.b. im Konstruktor.

    Simon



  • Ok, aber wie kann ich dann einen öffentlichen String Array deklarieren?



  • Moin,

    Du hast Probleme mit Grundlagen ... kauf Dir mal bitte ein passendes Buch

    Variante #1

    public ref class Foo
    {
        public:
            static array<String^> ^strings[] = gcnew array<String^>[10];
    }
    

    Variante #2

    public ref class Bar
    {
        private:
            array<String^> ^strings[];
    
        public:
            Bar()
            {
                strings = gcnew array<String^>[10];
            }
    
            array<String^> ^getStrings() { return strings; }
    }
    

    hand, mogel



  • Das Buch ist schon unterwegs 😉

    Wenn ich den String, wie beschrieben deklariere erhalte ich die Fehlermeldung

    error C2728: "cli::array<Type> ^": Ein systemeigenes Array kann diesen verwalteten Typ nicht enthalten.



  • Wenn ich die Klammern weg lasse funktioniert es.

    private:
    array<String^> ^test;
    

    Vielen Dank für die Hilfe



  • Ja, ja Mogel sollte sich auch mal ein Grundlagenbuch kaufen.

    Hand, Fratze



  • tompkins schrieb:

    Ok, aber wie kann ich dann einen öffentlichen String Array deklarieren?

    Das geht. Das sollte man aber der Kapselung zuliebe nicht tun!
    Simon



  • Fratze schrieb:

    Ja, ja Mogel sollte sich auch mal ein Grundlagenbuch kaufen.

    Hand, Fratze

    nein glaub ich nicht, mogel könnte glaub ich eines schreiben. Er hat das warscheinlich nur mit C# verwechselt.Da ist das durchaus gang ung gebe das man in der Attributenliste auch gleich initialisierungen vornimmt 😉

    tompkins schrieb:

    Ok, aber wie kann ich dann einen öffentlichen String Array deklarieren?

    mach ne öffentliche methode die das Array zurück gibt:

    public: array<String ^> ^getMyArray(){
        return test;
    }
    


  • denjo303 schrieb:

    Fratze schrieb:

    Ja, ja Mogel sollte sich auch mal ein Grundlagenbuch kaufen.

    nein glaub ich nicht, mogel könnte glaub ich eines schreiben.

    das habe ich mir auch schon überlegt ... aber Programmieren ist schöner ... ich drücke mich immer vor Dokumentation schreiben (muss aber auch gemacht werden) ... außerdem muss ich das Schild für meinen Troll neu machen ... das "Vorsicht bissig" ist leider etwas verwischt durch den Regen die letzten Tage

    Er hat das warscheinlich nur mit C# verwechselt.Da ist das durchaus gang ung gebe das man in der Attributenliste auch gleich initialisierungen vornimmt 😉

    nein eher Java (da ist das auch möglich) - um C# mache ich einen Bogen ... habe ja C++/CLI und VB.NET ... allerdings funktioniert das auch mit C++/CLI ... der Member muss nur statisch sein

    hand, mogel



  • ich kenns halt ausm C# bereich, hab damit zutun wegen XNA.
    Ich mach nen Bogen um Java^^


Anmelden zum Antworten