Использовать VB.NET и C # в одном приложении?

Я разрабатываю приложение на основе графического интерфейса в MS Visual Studio 2005, я просто хочу знать, можно ли использовать VB.NET и C # в одном проекте. Или я могу включить модуль, написанный на C # в моем проекте VB.NET?

У меня есть class, написанный на C #, который я хочу использовать в моем проекте на основе VB.NET, поэтому, если я могу включать и вызывать функции из этого проекта, мне не придется писать class снова в VB.NET.

Поэтому, пожалуйста, помогите мне, поскольку я новичок в .NET-программировании.

Я никогда не делал этого сам, но я знаю, что вы можете скомпилировать код C # в dll, а затем загрузить и ссылаться на dll в проекте VB.

От «Вызов classа C # в VB.net» :

Я думаю, что код C #, который вы хотите использовать, должен быть скомпилирован как DLL. Как только это будет сделано, просто добавьте ссылку на этот проект в проект VB.Net, импортируйте нужное пространство имен, а затем вы можете использовать код C #.

Также см. Раздел Как создавать и использовать C # DLL (из MSDN, для VS2005)

Я просто хочу знать, что можно использовать как VB, так и C # в одном проекте.

Нет, не в том же проекте . С другой стороны, вы можете использовать их в одном решении .

Или я могу добавить модуль, написанный на C # в моем проекте VB.net.

Я предлагаю вам создать решение, содержащее два проекта: один в C #, который формирует библиотеку, которую вы используете из своего проекта VB. Это просто, легко поддерживается и легко расширяется.

Вы также хотите убедиться, что код C # соответствует CLS. Это означает, что он не будет публично раскрывать какую-либо функциональность, которую другие языки .NET не поймут (например, unsigned ints – которые не существуют в VB или разные classы только в зависимости от случая), поскольку VB не чувствителен к регистру). Для этого вам нужно добавить атрибут, чтобы компилятор мог вызывать ошибки, если вы нарушили какие-либо рекомендации. В этой статье показано, как это сделать:

CLSCompliantAttribute может применяться к assemblyм, модулям, типам и членам.

Для маркировки всей сборки как CLS-совместимого используется следующий синтаксис

using System; [assembly:CLSCompliant(true)] 

Для маркировки конкретного метода, соответствующего CLS, используется следующий синтаксис

 [CLSCompliant(true)] public void MyMethod()` 

Поместите код VB.NET и C # в отдельные проекты. (Я использую VB.NET и C # в своем проекте с открытым исходным кодом, http://msquant.sourceforge.net/ , и он отлично работает).

Вам не нужно беспокоиться о DLL, просто ссылайтесь на проект (используйте вкладку «Проект» в диалоговом окне «Добавить ссылку»). Например, если вам нужно использовать функцию в коде / проекте C #, добавьте ссылку в проект VB.NET в проект C #.

Вы не можете использовать файл C # и файл VB в том же проекте. Тем не менее, вы можете иметь проекты VB и C # в одном решении и ссылаться на них.

В коде вы можете использовать:

 Imports namespace 

или

 using namespace 

После того, как ссылка добавлена ​​в соответствующий проект, постройте решение, и вы хорошо пойдете.

Вы также можете создать библиотеку VB.NET в отдельном решении, скомпилировать ее и импортировать DLL в проект C # или наоборот.

Вы также должны знать, что если у вас есть проект VB.NET с проектом C # в том же решении, при этом один из них имеет ссылку на другой, изменения в проекте ссылок будут доступны другим после восстановления решения. Это похоже на двоичную ссылку, но с возможностью изменения кода на одном и том же решении.

Лично мне это не нравится, но я всегда в ситуации, когда я изменяю код в проекте ссылок и не знаю, почему мои изменения не находятся в коде, где я его использую, и я выясняю это, ооохх , Я должен перестроить.

Для временной помощи это может быть приемлемым, но не для программирования каждый день.

Если вы планировали использовать модуль в проектах Visual Basic, вам следует рассмотреть возможность преобразования кода в Visual Basic. Если вам нужно использовать модуль как в программах C #, так и в VB.NET , я бы воспользовался одним из вышеперечисленных решений

Вы можете попробовать что-то вроде: * Преобразовать C # в VB.NET . Он преобразует код C # в VB.NET. Я использую эту страницу исключительно, когда мне нужно преобразовать то, что я нахожу в сети, написанное на C #.

  • Прикрепить отладчик к экземпляру IIS
  • Как настроить платформу тестирования Google C ++ (gtest) на Visual Studio 2005
  • Исключить файлы с веб-сайта в Visual Studio
  • ОШИБКА: Имя источника данных не найдено и указанный драйвер по умолчанию не указан
  • Как я могу увидеть исходный файл C / C ++ после предварительной обработки в Visual Studio?
  • Давайте будем гением компьютера.