Stan Huang Ответов: 3

Почему он не может использовать "систему.Окна.Формы" пространство имен?


У меня есть программа от другого коллеги. Я хотел бы добавить отладочное сообщение, вызвав MessageBox.Показывать(). Вот почему я должен добавить одну строку "использование системы.Окна.Бланки;" в начале файла. Я получил ошибку от
"Тип или имя пространства имен "формы" не существует в системе пространства имен.Окна' (пропущена ссылка на сборку?)"
Что с ним не так? Я использовал "использование системы.Окна.Формы;" очень хорошо в другом файле того же проекта и скопируйте эту строку из другого файла. Что означает "ссылка на сборку"? Что я должен сделать, чтобы решить эту проблему?

Sergey Alexandrovich Kryukov

Я никогда этого не пойму: зачем пытаться что-то программировать, не читая на самых основах?
—СА

Sergey Alexandrovich Kryukov

Веб-приложение? куда?!
—СА

Stan Huang

Нет, это не веб-приложение, а библиотека классов приложения Windows.

Sergey Alexandrovich Kryukov

Хорошо, спасибо за подтверждение. Возможно, "веб-приложение" было не чем иным, как фантазией Аркадипа де.
—СА

3 Ответов

Рейтинг:
20

Sergey Alexandrovich Kryukov

Это потому, что вы понятия не имеете, что такое "использование", просто еще нет. Вы вообще не можете заниматься разработкой, не понимая сборок и их ссылок. Вы разрабатываете одну или несколько сборок, и одна из них может использоваться другой. Вы можете сделать это, ссылаясь на одну сборку другой или динамически загружая другую сборку и используя отражение для доступа к ее типам и их членам. Динамическая нагрузка связана с передовыми методами, но привязка является основой всей технологии, что делает невозможным вообще что-либо делать без привязки.

Ссылки в Visual Studio выполняются с помощью кнопки "Добавить ссылку" в обозревателе решений. Для понимания ссылок вы можете начать здесь: https://msdn.microsoft.com/en-us/library/8wxf689z%28v=vs.110%29.aspx[^].

Вам также нужно понять, что такое модули и различные виды ссылок, что важно, GAC и подпись, а, следовательно, и идея криптографии с открытым ключом. Пожалуйста, найдите все это сами, прежде чем задавать дальнейшие вопросы.

Как "использование" директива (не путать с "использованием" заявление), они просто помогают сократить имена имен типов на уровне сборки. Вы вообще не обязаны использовать слово "using", можете просто использовать полные имена типов во всех случаях. Это не что иное, как синтаксический сахар Вам просто нужно понять пространства имен: https://msdn.microsoft.com/en-us/library/0d941h9d.aspx[^].

—SA a**отверстие


Stan Huang

Я достиг его, щелкнув правой кнопкой мыши на этом проекте в обозревателе решений, а затем "добавить ссылку" - "сборки" - "фреймворк", а затем проверил " система.Окна.Формы'.

Sergey Alexandrovich Kryukov

Нет, это Обозреватель решений, узел проекта/узел ссылок, добавить ссылку -> Добавить окно ссылок, вкладка .NET. Тогда вы можете использовать систему.Окна.А также пространство имен форм.
—СА

Suvendu Shekhar Giri

5*. прекрасно описанный и правильный ответ.

Sergey Alexandrovich Kryukov

Спасибо, Сувенду.
—СА

Рейтинг:
13

Suvendu Shekhar Giri

Прежде всего, вы уверены, что это приложение windows form ? Я подозреваю, что это приложение WPF.

Вам нужно добавить ссылку на Система.Окна.Формы.
Для этого зайдите в Обозреватель Решений и щелкните правой кнопкой мыши на проекте и нажмите кнопку Далее Добавить Ссылку а затем выберите Система.Окна.Формы.

Надеюсь, это поможет :)


Sergey Alexandrovich Kryukov

(Вздыхать...) Мне очень жаль, но пока нет никаких признаков применения WPF. Прежде всего, ничто не мешает использовать систему.Окна.Формы в сборке WPF, и наоборот. Вообще ничего. Может быть много причин, по которым на какую-то сборку не ссылаются. Можно начать с консольного приложения и начать добавлять формы, не зная, что сборка должна быть добавлена. Другой мог бы удалить ссылку по любой причине.

Корень проблемы в том, что наш исследователь не имеет понятия о сборках и ссылках. Это корень, и ничего больше.

Несмотря на то, что ваш совет "добавить ссылку" вполне обоснован, весь пост кажется слишком запутанным для новичка, и, по-видимому, наш исследователь-абсолютный новичок.

Спасибо за понимание.

—СА

Suvendu Shekhar Giri

Я согласен. Извините за мои предположения. Прежде всего, я должен был спросить ОП о типе приложения, прежде чем публиковать ответ.
Во-вторых, в будущем я постараюсь быть более описательным для таких вопросов, чтобы исследователи могли понять первопричину, а не делать их более запутанными или без подсказок.

Спасибо @SA :)

Sergey Alexandrovich Kryukov

Я действительно ценю ваше понимание и внимание.
—СА

Stan Huang

Это библиотека классов, построенная в VS2012.

Sergey Alexandrovich Kryukov

Хорошо, вы можете хорошо справляться с системой отсчета.Окна.Формы в нем и используйте свои формы в каком-нибудь приложении, ссылающемся на вашу библиотеку...
—СА

Рейтинг:
1

Ralf Meier

Вы должны заполнить ссылки вашего проекта (Project-Settings - я не знаю, как это называется в вашей установке VS) необходимыми сборками.

В вашем случае вам нужно интегрировать систему сборки".Окна.Формы"


Sergey Alexandrovich Kryukov

Мне очень жаль, но ни в одной из версий Visual Studio нет .NET-это "настройки проекта". Это "Обозреватель решений". Кроме того, "интегрировать сборку" - это неправильный термин. Мне неприятно это говорить, но лучше не путать новичков. Пожалуйста, поймите: как это может кому-то помочь?
—СА

Ralf Meier

Извините - как я уже писал : я не знаю, как это называется на других языках - мой VS установлен на немецком языке ...
Но чего я не понимаю ... .. где ошибка - в этом случае спрашивающему нужно добавить ссылку (потому что я думаю, что она отсутствует) - см. Также предложение в решении 2 - оно указывает на то же самое ...

Но если вы считаете, что ваше решение более полезно для исследователя ...

Sergey Alexandrovich Kryukov

Я просто имею в виду, что ссылки на действия IDE очень сбивают с толку. Проблема в том, что на самом деле есть Project => Properties, но там нет ссылки на добавление для проектов C#, но есть для C++/CLI. Представьте себе замешательство новичка, загнанного в тупик... :-)
—СА

Stan Huang

Да, я действительно нахожу "добавить ссылку" в разделе "Проект" для проекта VC#.

Ralf Meier

Спасибо за ваш ответ ...