Подтвердить что ты не робот

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

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

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

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

4b9b3361

Ответ 1

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

Из "Вызов класса С# в VB.net" :

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

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

Ответ 2

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

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

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

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

Ответ 3

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

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

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

using System; 
[assembly:CLSCompliant(true)]

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

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

Ответ 4

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

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

Ответ 5

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

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

Imports namespace 

или

using namespace

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

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

Ответ 6

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

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

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

Ответ 7

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

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