9
votes

Références d'espace de noms dans C # vb.net

dans vb.net, vous pouvez faire quelque chose comme ce qui suit sans aucun problème ... ignore simplement le fait qu'il s'agit d'une catégorie assez inutile: -) xxx

Toutefois si vous faites le même chose dans c # ... xxx

Vous obtiendrez une erreur sur la ligne avec le retour sur "collections.generic.list" Dire "Le type ou le nom de l'espace de noms" "On pourrait ne pas être trouvé (manquez-vous une directive à l'aide de la directive ou une référence d'assemblage?)"

Je sais que vous devez avoir une directive à l'aide de System.Collections.generic à utiliser la liste, mais je n'ai pas t savoir pourquoi . Je ne comprends pas non plus pourquoi je ne reçois pas la même erreur dans la déclaration de fonction, mais seulement dans la déclaration de retour.

J'espérais que quelqu'un puisse expliquer cela ou même me référer à une page de technique qui l'explique. J'ai cherché autour de là, mais je ne trouve rien qui explique ce concept.

Edit: Juste à noter, la question concerne vraiment le référencement d'un espace de sous-nom comme dans l'exemple de pouvoir faire référence à Collections au sein du système.


3 Réponses :


5
votes

Ceci est parce que vb.net prend en charge les espaces de noms partiels ; C # ne pas.

avec Visual Basic, le système est importé Par défaut et les espaces de noms d'enfants sont résolu automatiquement.

En savoir plus dans cet article.

vb.net vs c #, Tour 2: Espaces de noms partiels


2 commentaires

C'est un article génial. Le troisième poste, je pense répondre à la question la question la plus directement ici, mais c'était très utile, donc j'ai donné les points. Merci!


@rahul, le lien vers l'article des espaces de noms partiels est maintenant cassé.



0
votes

Vous pouvez dire System.Collections.Generic.List. cela fonctionnerait.

Je pense que vous devez donner la liste complète et non omettre la partie système.

Vous devrez également vous modeler avec une chaîne comme dans la liste similaire à la liste (de chaîne)


0 commentaires

5
votes

à l'aide de directive en C # ne permet pas ceci:

Créer une utilisation à l'aide de la directive pour utiliser le types dans un espace de noms sans avoir à Spécifiez l'espace de noms. En utilisant La directive ne vous donne pas accès à tous les espaces de noms imbriqués dans le Espace de noms que vous spécifiez.

vb.net, cependant, supporte quelque peu Comportement plus proche avec Importations Déclaration:

la portée des éléments faits Disponible par une déclaration importées dépend de la spécificité que vous êtes quand en utilisant l'instruction Imports. Pour exemple, si seulement un espace de noms est spécifié, tous les membres nommés de manière unique de cet espace de noms et membres de modules dans cet espace de noms, sont Disponible sans qualification. Si à la fois un espace de noms et le nom d'un élément de cet espace de noms sont spécifié, seuls les membres de cette élément sont disponibles sans Qualification.

Référence de la question


1 commentaires

C'est génial, je ne sais pas comment j'ai manqué ce message, je suppose que ma corde de recherche n'était pas assez proche. Merci!