В том же решении у меня есть два проекта: P1 и P2. Как я могу использовать класс P1 в P2?
c#
visual-studio
Strider007
источник
источник
Ответы:
Просто добавьте ссылку на P1 из P2
источник
Обратите внимание, что типы в P1, к которым вы хотите получить доступ напрямую, должны иметь достаточный уровень доступа: обычно это означает, что они должны быть общедоступными.
источник
Пол Руан прав, я только что попробовал построить проект. Я просто сделал целый SLN, чтобы проверить, работает ли он.
Я сделал это в ВК # VS2008
<< (Просто помогать другим людям, которые читают это, с помощью () комментариев)
Шаг 1:
Сделайте решение под названием DoubleProject
Шаг 2:
Сделайте проект в решении с именем DoubleProjectTwo (для этого выберите файл решения, щелкните правой кнопкой мыши -> Добавить -> Новый проект)
Теперь у меня есть два проекта в одном решении
Шаг 3:
Как заявил Пол Руан. перейти к ссылкам в обозревателе решений (если он закрыт на вкладке просмотра компилятора). DoubleProjectTwo - это тот, который нуждается в функциях / методах DoubleProject, поэтому в DoubleProjectTwo ссылка правой кнопкой мыши там -> Добавить -> Проекты -> DoubleProject.
Шаг 4:
Шаг 5:
Это должно делать свое дело
Надеюсь это поможет
РЕДАКТИРОВАТЬ ::: упс забыл вызов метода, чтобы фактически изменить строку, не делайте того же :)
источник
Слишком часто новый разработчик задает этот простой вопрос, который является распространенной проблемой именно в среде разработки Visual Studio. Мало кто отвечает на конкретный вопрос и часто критикует вопрос или дает «догадки» о решениях, которые не отвечают на общие проблемы. Первая распространенная проблема заключается в том, что среда IDE заставляет вас создавать новые проекты, а не добавлять новые файлы (.java, .py, .cpp, .c) к существующему решению (по умолчанию создается новое решение), если вы не измените имя проекта. и добавить к текущему решению. Эта проблема возникает для папок проектов Python, java, C #, C ++ и C.
Этого не происходит, когда вы добавляете другой проект с помощью команд среды IDE new> project> project type. Проблема здесь в том, что новый проект хранится в другом каталоге, чем существующие файлы кода клиентского или пользовательского интерфейса. Чтобы создать новый «файл» в том же пространстве проекта, а не новый проект, новичок должен сделать следующее, чего Microsoft не сделает за вас и даже по умолчанию уводит вас от интуитивно очевидного.
СЕЙЧАС рекомендации по коду для импорта библиотек или использования пространств имен будут работать, как описано в комментариях выше, и вам не нужно изменять инструкции пути или менять пути решений и имена решений, которые Microsoft не позволит вам легко изменить (т.е. вы можете изменить имена файлов или имена проектов, но среда IDE не будет автоматически изменять путь к проекту или имена путей решения).
Ниже приведен пример Python, но он работает аналогично для C #, java или C / C ++ с использованием включений, пространств имен или команд кода, соответствующих каждому языку, для поиска кода в других классах / проектах в ТАКОМ ПРОСТРАНСТВЕ КАТАЛОГА.
Файл приложения "hello world" импортируется из других файлов кода в том же каталоге.
Обратите внимание, что разделители пробелов python не будут правильно размещаться в этом редакторе комментариев stackoverflow:
Файл библиотеки или "фасадный" файл, содержащий классы, методы или функции, которые вы хотите импортировать.
СЕЙЧАС, как вы на самом деле решаете беспорядок, в который вас ведет IDE? Чтобы импортировать код из другого файла в том же пространстве каталога, вы добавляете на него ссылку.
Итак, теперь, когда вы решили эту проблему, как на самом деле связать два отдельных проекта в одном пространстве решений?
Microsoft действительно, действительно необходимо решить эту проблему, чтобы вы могли интуитивно создавать то, что большинство людей хотят создать в виде новых файлов в тех же каталогах, и удалять решения, выбирая их и удаляя из среды IDE. Новичков так расстраивают заявления о пути к каталогам, такие гибкие для опытных разработчиков, но такие несправедливые по отношению к новым разработчикам в их значениях по умолчанию.
Надеюсь, это действительно поможет вам, новички, и помешает опытным разработчикам дать вам неправильные ответы, которые вам не подходят. Они предполагают, что вы уже понимаете инструкции пути и просто хотите ввести правильный код ... именно поэтому туннель пытается исправить ваш код, но не помогает вам решить проблему. Это, вероятно, самая распространенная проблема, постоянно описываемая в stackoverflow с неправильными ответами, которые не работают для начинающих программистов.
источник
Первый шаг - сделать P2 ссылкой P1, выполнив следующие действия.
Затем вам нужно убедиться, что классы в P1 доступны для P2. Самый простой способ - сделать их
public
.Теперь вы сможете использовать их в P2 через их полное имя. Предполагая, что пространство имен P1 - Project1, тогда будет работать следующее
Однако предпочтительный способ - добавить using для,
Project1
чтобы вы могли использовать типы без квалификации.источник
Если у вас есть два проекта в одной папке решения, просто добавьте ссылку на проект в другую. Используя пространство имен, вы можете получить классы. При создании объекта для этого необходимого класса. Вызовите нужный метод.
Первый проект:
Здесь добавьте ссылку на Второй проект
Второй проект:
источник
В проекте P1 сделайте класс общедоступным (если это еще не сделано). Затем добавьте ссылку на проект (а не ссылку на файл, с которой я иногда сталкивался) в P2. Добавьте оператор using в P2 в правильном месте и начните использовать класс из P1.
(Отметим следующее: альтернативой тому, чтобы сделать класс общедоступным, было бы сделать P2 другом P1. Это, однако, вряд ли будет тем ответом, который вам нужен, поскольку это будет иметь некоторые последствия. Так что придерживайтесь приведенного выше предложения.)
источник
Скажем, ваш класс в проекте 2 называется MyClass.
Очевидно, сначала укажите на свой проект 2 ссылки в проекте 1, затем
поэтому всякий раз, когда вы хотите сослаться на этот класс, вы вводите project2Class. Кроме того, убедитесь, что этот класс также является общедоступным.
источник
У меня была проблема с разными целевыми фреймворками.
Я все делал правильно, но просто не мог использовать ссылку в P2. После того, как я установил одну и ту же целевую структуру для P1 и P2, все заработало отлично.
Надеюсь, это кому-то поможет
источник
The name ... does not exist in the current context. Cannot resolve symbol ...
до тех пор, пока я не изменил целевые рамки проектов, чтобы они соответствовали. (Щелкните правой кнопкой мыши проект и перейти кProject -> Properties -> Target framework
изменить это.)