Использовать VB.NET и С# в одном приложении?
Я разрабатываю приложение на основе графического интерфейса в MS Visual Studio 2005, я просто хочу
знать, можно ли использовать VB.NET и С# в одном проекте. Или я могу включить модуль, написанный на С# в моем проекте VB.NET?
У меня есть класс, написанный на С#, который я хочу использовать в моем проекте на основе VB.NET, поэтому, если я могу включать и вызывать функции из этого проекта, то мне больше не придется писать класс в VB.NET.
Поэтому, пожалуйста, помогите мне, поскольку я новичок в .NET-программировании.
Ответы
Ответ 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. Я использую эту страницу исключительно, когда мне нужно преобразовать что-то, что я нашел в сети, которое было написано на С#.