benutzerdefinierter Kopierkonstruktor



  • Hallo,
    an der unten stehenden gekennzeichneten Stelle be komme ich folgende Fehlermeldung:
    "error C3073: "System::Collections::Generic::List<T>": Die Verweisklasse hat keinen benutzerdefinierten Kopierkonstruktor. "

    static bool Hashouses(List<String^> houses)
    	{
    	 return houses.Contains("Hütte") || houses.Contains("Laube");
    	}
    
    private: System::Void button4_Click(System::Object^  sender, System::EventArgs^  e) 
    	{ 
              List<String^> houses = gcnew List<String^>();
              houses.Add("Hütte");
              houses.Add("Bungalow");
              houses.Add("Laube");
    
    	 if (Hashouses(houses))//<--Fehlermeldung
                 {
    		textBox1->Text ="Has__houses";
                 }
    }
    

    Kann mich jemand aufklären,warum und was zu machen ist; in C# funktioniert das nämlich.
    Danke im Voraus !
    Grüße
    Lukos



  • Du hast den Parameter ohne ^ definiert. Somit will er die Liste kopieren, wenn Du sie in die Methode reingibst.
    Alternativ kannst Du eine tracking-Referenz übergeben 😵
    =>

    static bool Hashouses(List<String^>% houses)
        {
         return houses.Contains("Hütte") || houses.Contains("Laube");
        }
    


  • Danke !
    Grüße Lukos


Log in to reply