2009-05-12 15 views
18

Salut comment utiliser boucle foreach dans le code managé C++ en utilisant vs2003.Comment utiliser foreach dans C++ cli dans le code managé

+1

Et je viens de trouver cette friandise fantastique Sur le blog de Jochen Kalmbach: la variable cachée $ I contient l'index actuel de l'itération. http://blog.kalmbach-software.de/2009/12/30/the-mystic-variable-i-during-for-each/ –

Répondre

-7

Je ne pense pas que VC++ a foreach

+0

bien, il y a std :: for_each, et Boost.Foreach, et normal pour boucles, donc je ne pense vraiment pas que vous êtes tout à fait là –

+1

Je ne crois pas l'un de ceux qui s'appliquent automatiquement à IEnumerable. –

+0

Ils ne prendront certainement pas soin d'éliminer l'IEnumerable. – marklam

36

Je ne l'ai jamais utilisé, mais this MSDN article indique la syntaxe générale est juste:

for each(Type t in IEnumerable) 
{ 

} 
+1

C'est la même chose que C# mais avec un espace entre pour et chacun. – Skizz

+1

dans VS2005 c'est ok bur dans VS2003 il donne erroe.i je ne sais pas il se comporte comme ça. – Cute

+1

Mignon, car il est nouveau dans Visual C++ (http://msdn.microsoft.com/en-us/library/xey702bw(VS.80).aspx), à ne pas confondre avec Managed Extensions for C++. –

1

Quelque chose comme:

String^MyString = gcnew String("abcd"); 

for each (Char c in MyString) 

    Console::Write(c); 
+0

Citez vos sources. –

10

Matthew est la plupart du temps correct, mais voici un bloc de code de travail;

/////// 
array<Type^>^ iterate_me = gcnew array<Type^>(2); 
iterate_me[0] = Type::GetType("Type"); 
iterate_me[1] = Type::GetType("System.Int32"); 
/////// 

for each(Type^ t in iterate_me) 
    Console::WriteLine(t); 

Les changements ont été le type est une classe de référence, de sorte que vous utilisez « Type^» non « Type » et vous avez besoin d'une référence d'objet réel (iterate_me) ...

+0

C++ géré dans VS 2003 est malheureusement très différent de C++ .NET qui a été introduit dans VS 2005+. Il n'y avait pas de «pour chaque» bloc. ** C++ ** géré doit absolument être évité. C++. NET est très bien pour l'utilisation. – pickypg

+0

Ahhh à droite, le titre me confond, il lit "C++ cli ..." J'ai passé sous silence la partie où il posait à propos de 2003. – RandomNickName42

+2

Pas grave. Je voulais juste m'assurer que quiconque découvre cela sur Google/Bing ne tombe pas dans le noir du développement C++ géré. – pickypg

Questions connexes