Etant débutant j'ai un souci avec les namespaces.
J'ai repris un exemple et voila comment je l'utilise.
j'ai un form et dans celui ci , j'ai mis deux namespaces. Alors déjà je sais pas si c'est correct ?.
Le but est que dans le deuxieme namespace je déclare une classe qui hérite d'une classe abstraite déclaré dans le premier namespace.
Et là , il refuse ! .
il indique que "DataProvider" est introuvable, qu'il manque soit un using soit un assembly.
Exemple du ( deuxieme namespace) :
namespace
Multi_Base.ConcreteProviders{
//Construction DataProvider spécifique à celui de SQL Server.
public abstract class DataProviderSqlClient : DataProvider{....}
Comment faire ? Dois-je créer un autre projet et y mettre mon deuxieme namespace, le compiler (je sais pas en quoi) et l'interger au premier projet comme référence?
J'évoue que je suis perdu ?
Cordialement.
A voir également:
Le nom de type ou d'espace de noms est introuvable
Un espace de noms ne peut pas contenir directement des membres tels que des champs ou des méthodes - Meilleures réponses
J'avais pas fait attention, a quoi bon déclarer ta class DataProvider et ton interface IDataProvider dans la classe Form1 (en public, j'entends).
Si tu ne les déclare pas en Private (donc accessible seulement pour Form1), sors les de Form1.
Autrement, je pense que ca ne marche pas avec le using parce que ta classe DataProviderSqlClient
est dans le meme fichier que l'autre classe. Donc 2 espaces de nom dans un meme fichier, et il doit pas s'en sortir. Si tu la met dans un autre fichier, cela marchera avec le using.
Autre question, pourquoi ne pas mettre tes classes dans un seul et meme espace de nom ?
L'autre solution est de spécifier le nom complet de DataProvider, à savoir LeNamespace.DataProvide.
Mais si tu dois te servir d'autres éléments du namespace, autant utiliser le using.
/*
coq
MVP Visual C#
*/
Vous n’avez pas trouvé la réponse que vous recherchez ?
Désole,
j'avais déjà essayé de mettre using mais que je le mette tout à fait en haut (avant premier namespace) ou dans deuxieme namespace , il ne veut rien savoir.
Je tourne en rond, il y a surement quelques chose à faire en plus.
Je vous mets un résumé du code pour mieux visualiser.
Cordialement.
using ... ;
...;
...;
...;
using Multi_Base
;
namespace Multi_Base
{...
public
class Form1 : System.Windows.Forms.Form
{...
Public
interface IDataProvider{...}
Public
abstract
class DataProvider : IDataProvider{...}
...
}
...}
namespace toto
{...
public
abstract
class DataProviderSqlClient : DataProvider{...}
Effectivement en sortant les classes public du form, elles sont desormais accessibles en utilisant le using.
Pour ce qui est du fichier, je n'ai pas encore assez de connaissance pour m'y attaque maintenant. et puis je ne sais même pas comment on fais; d'ou mes interrogation du premier message.