2009-09-16 3 views
1

Si je crée une nouvelle forme appelée myForm, haut de myForm.h ressemble à ceci:Comment arrêter une nouvelle forme d'utiliser namespace System :: Collections

#pragma once 

using namespace System; 
using namespace System::ComponentModel; 
using namespace System::Collections;  //<<<< THIS ONE 
using namespace System::Windows::Forms; 
using namespace System::Data; 
using namespace System::Drawing; 

Aucun d'entre eux sont même nécessaires, parce que le merveilleux concepteur de formes qualifie toujours pleinement ses objets.

Celui marqué avec THIS ONE est particulièrement ennuyeux car il casse ma construction. Ceci est parce que j'utilise la forme générique de IList partout - je l'aime tellement que je l'ai mis dans stdafx.h, comme ceci:

using System::Collections::Generic::IList; 

Alors si je veux utiliser myForm de tout autre fichier où je suis d'utiliser IList, comme ceci:

#include "StdAfx.h" 
#include "ABC.h" 
#include "myForm.h" 

ABC::ABC() 
{ 
    IList<int>^ myList; 
    ... 
} 

alors il ne peut pas compiler:

1>.\ABC.cpp(7) : error C2872: 'IList' : ambiguous symbol 
1>  could be 'c:\windows\microsoft.net\framework\v2.0.50727\mscorlib.dll : System::Collections::Generic::IList' 
1>  or  'c:\windows\microsoft.net\framework\v2.0.50727\mscorlib.dll : System::Collections::IList' 
1>.\ABC.cpp(7) : error C2872: 'IList' : ambiguous symbol 
1>  could be 'c:\windows\microsoft.net\framework\v2.0.50727\mscorlib.dll : System::Collections::Generic::IList' 
1>  or  'c:\windows\microsoft.net\framework\v2.0.50727\mscorlib.dll : System::Collections::IList' 

alors, comment puis-je arrêter une nouvelle forme d'ajouter tous ces usings inutiles et destructrices?

+0

Codifiez-les avec le bloc-notes. Sérieusement, je suppose que vous utilisez VS? – womp

+0

Désolé yep VS2008 et C++/CLI - whoops oublié d'ajouter cette info: *) – demoncodemonkey

+0

Pourquoi ne pas les enlever à la main? Ce n'est pas comme si l'IDE allait remettre la déclaration d'utilisation par la suite. –

Répondre

2

Vous pouvez modifier les modèles par défaut que Visual Studio utilise en éditant les fichiers zip dans le répertoire ItemTemplates pour la langue spécifique que vous utilisez.

C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Code\1033

est l'endroit où les modèles C# sont. Je suppose que les modèles C++ seraient dans un répertoire similaire mais je n'ai pas une instance VS installée avec C++ à portée de main.

+0

VC sont dans: C: \ Program Files \ Microsoft Visual Studio 9.0 \ Common7 \ IDE \ ItemTemplates \ VisualC \ 1033 mais il n'y a que 4 fichiers zip - HelpTest, OrderedTest, SimpleUnitTest et UnitTestWizard. No Form.zip ou quelque chose d'utile à distance :( – demoncodemonkey

+0

Huh. Intéressant Eh bien, ce répertoire semble prometteur: C: \ Program Files \ Microsoft Visual Studio 9.0 \ VC \ vcprojectitems \ Code ... sauf que le fichier code.vsdir semble être pointant vers quelques clés de registre ...laissez-moi les suivre ... – womp

+0

http://social.msdn.microsoft.com/Forums/en-US/Vsexpressvc/thread/86b9d540-376f-4cb7-bd4f-f401e0fba7b3 semble être dans la bonne direction. Je ne sais pas si la modification de "hfile.h" résoudrait votre problème. – womp

2

Vous pouvez modifier le modèle de formulaire de Visual Studio. Pour en savoir plus, jetez un oeil à:

http://msdn.microsoft.com/en-us/library/ms185319(VS.80).aspx

+0

Désolé je ne vois pas où cela s'applique aux formulaires - il semble seulement parler de projets. Pourriez-vous expliquer comment utiliser cette méthode pour modifier le modèle de formulaire? – demoncodemonkey

+0

Les modèles d'élément doivent être situés à: "C: \ Program Files \ Microsoft Visual Studio 9.0 \ Common7 \ IDE \ ItemTemplates \ VisualC \ 1033" Toutefois, il est recommandé de créer votre propre modèle de formulaire personnalisé, plutôt que de modifier un modèle par défaut. Vous pouvez trouver des instructions sur la façon de créer votre propre modèle ici: http://www.dev102.com/2008/07/24/visual-studio-item-templates/ –

+0

Merci, mais dans ce cas, je voulais vraiment modifier celui par défaut. Pourquoi diriez-vous qu'il est recommandé d'en créer un personnalisé? – demoncodemonkey