web-dev-qa-db-fra.com

Utilisez VB.NET et C # dans la même application?

Je développe une application basée sur une interface graphique dans MS Visual Studio 2005, je veux simplement savoir s'il est possible d'utiliser VB.NET et C # dans le même projet. Ou puis-je inclure un module écrit en C # dans mon projet VB.NET?

J'ai une classe écrite en C # que je veux utiliser dans mon projet basé sur VB.NET, donc si je peux inclure et appeler des fonctions de ce projet, je n'aurai pas à écrire à nouveau la classe dans VB.NET.

Alors aidez-moi, je suis nouveau dans la programmation .NET.

16
Amit Kumar Jha

Je ne l'ai jamais fait moi-même, mais je sais que vous pouvez compiler le code C # dans une dll, puis charger et référencer la dll dans votre projet VB.

De "Appel de la classe C # dans VB.net" :

Je pense que le code C # que vous souhaitez utiliser doit être compilé en tant que DLL. Une fois que cela est fait, ajoutez simplement une référence à ce projet dans votre projet VB.Net, importez l'espace de noms dont vous avez besoin, puis utilisez le code C #.

Voir aussi Comment: créer et utiliser des DLL C # (à partir de MSDN, pour VS2005)

16
Jared Harley

Je veux juste savoir s'il est possible d'utiliser à la fois VB et C # dans le même projet.

Non, pas dans le même projet . D'autre part, vous pouvez les utiliser dans la même solution .

Ou puis-je inclure un module écrit en C # dans mon projet VB.net.

Je vous propose de créer une solution contenant deux projets: un en C # qui forme une bibliothèque que vous utilisez à partir de votre projet VB. C’est simple, facile à entretenir et à étendre.

27
Konrad Rudolph

Vous voulez également vous assurer que votre code C # est conforme à CLS. Cela signifie qu'il n'exposera pas publiquement les fonctionnalités que les autres langages .NET ne comprendraient pas (par exemple, des ints non signés - qui n'existent pas en VB, ou des classes différentes uniquement par la casse - puisque VB est Pas sensible à la casse). Pour ce faire, vous devez ajouter un attribut afin que le compilateur soulève des erreurs si vous avez enfreint les instructions. Cet article vous montre comment procéder:

Le CLSCompliantAttribute peut être appliqué aux assemblys, modules, types et membres.

Pour marquer un assemblage entier comme conforme à CLS, la syntaxe suivante est utilisée

using System; 
[Assembly:CLSCompliant(true)]

Pour marquer une méthode particulière comme conforme à CLS, la syntaxe suivante est utilisée

[CLSCompliant(true)]  
public void MyMethod()`
9
Martin Harris

Vous ne pouvez pas utiliser un fichier C # et un fichier VB dans le même projet. Vous pouvez toutefois avoir VB et des projets C # dans la même solution et les référencer.

Dans votre code, vous pouvez utiliser:

Imports namespace 

ou

using namespace

Une fois que la référence a été ajoutée au projet approprié, générez la solution et vous êtes prêt à partir.

Vous pouvez également créer une bibliothèque VB.NET dans une solution distincte, la compiler et importer le fichier DLL dans le projet C # ou inversement.

3
K.J.

Placez le code VB.NET et C # dans des projets distincts. (J'utilise à la fois VB.NET et C # dans mon projet open source, http://msquant.sourceforge.net/ , et cela fonctionne très bien).

Vous n'avez pas à vous soucier des DLL, il vous suffit de référencer le projet (utilisez l'onglet "Projet" dans la boîte de dialogue "Ajouter une référence"). Par exemple. si vous devez utiliser une fonction dans le code/projet C #, ajoutez une référence dans le projet VB.NET au projet C #.

3
Peter Mortensen

Vous devez également savoir que si vous avez un projet VB.NET avec un projet C # dans la même solution et que l’un d’eux ayant une référence à l’autre, les modifications appliquées dans le projet de référencement seront simplement disponibles. à l'autre après avoir reconstruit la solution. C'est comme avoir une référence binaire, mais avec la possibilité de changer de code sur la même solution.

Personnellement, je n'aime pas cela, mais je suis toujours dans une situation où je modifie le code dans le projet de référencement et ne sais pas pourquoi mes modifications ne sont pas dans le code où je les utilise et je le découvre, oohhhh , Je dois reconstruire.

Pour une aide temporaire, cela pourrait être acceptable, mais pas pour la programmation quotidienne.

2
Samuel

Si vous envisagiez uniquement d'utiliser le module dans des projets Visual Basic, envisagez simplement de convertir le code en Visual Basic. Si vous devez utiliser le module à la fois en C # et VB.NET programmes, j'utiliserais l'une des solutions présentées ci-dessus.

Vous pouvez essayer quelque chose comme * Convertir C # en VB.NET . Il convertit C # en code VB.NET. J'utilise cette page exclusivement lorsque je dois convertir quelque chose que j'ai trouvé sur le net et qui a été écrit en C #.

0
Aaron M