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?
Codifiez-les avec le bloc-notes. Sérieusement, je suppose que vous utilisez VS? – womp
Désolé yep VS2008 et C++/CLI - whoops oublié d'ajouter cette info: *) – demoncodemonkey
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. –