84 votes

F # définir / utiliser un type / module dans un autre fichier du même projet

Nous espérons que cela sera facile. J'ai un projet F# (dernière F# CTP) avec deux fichiers (le Programme.fs, de la Pile.fs). Dans La Pile.fs j'ai un simple espace de noms et la définition de type

La pile.fs

namespace Col

type Stack= 
 ...

Maintenant, j'essaie d'inclure l'espace de noms dans le Programme.fs en déclarant

open Col

Cela ne fonctionne pas et me donne le message d'erreur "L'espace de noms ou d'un module de Col n'est pas défini." Et pourtant, il est défini dans le même projet. J'ai manquer quelque chose d'évident

90voto

Brian Points 82719

Quel ordre sont les fichiers dans le projet? La pile.fs doit venir avant le Programme.fs pour le Programme.fs pour être en mesure de "voir".

Voir aussi le début de

http://lorgonblog.spaces.live.com/blog/cns!701679AD17B6D310!444.entrée

et à la fin de

http://lorgonblog.spaces.live.com/blog/cns!701679AD17B6D310!347.entrée

46voto

Horacio N. Hdez. Points 351

J'ai eu les mêmes problèmes, et vous avez raison, l'ordre des fichiers est pris en compte par le compilateur. Au lieu des modèles Supprimer et Ajouter, vous pouvez utiliser les éléments Monter / Descendre dans le menu contextuel associé aux fichiers .fs. (Alt-Up et Alt-Down sont les touches de raccourci dans la plupart des combinaisons de touches standard)

1voto

Jen S. Points 1230

J'ai eu le même problème et c'était bien la commande des fichiers. Toutefois, les liens ci-dessus ne décrivent pas comment résoudre ce problème dans Visual Studio 2008 F # 1.9.4.19.

Si vous ouvrez un module, assurez-vous que votre fichier source vient après la dépendance dans l'explorateur de solutions. Faites un clic droit sur votre source et sélectionnez Supprimer. Puis rajoutez-le. Cela le fera apparaître au bas de la liste. J'espère que vous n'avez pas de dépendances circulaires.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X