Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
1

Как использовать классы, которых нет, но которые быть должны?

09.01.2013, 22:34. Показов 2123. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам

Не по теме:

На C++ (gcc) так делается- скачиваешь библиотеку, распихиваешь файлы по директориям и работаешь



А тут как?
Допустим, нашёл я код и хочу его у себя задействовать.
C#
1
ManagementObject x = new ManagementObject("stroka");
шаги такие:
1) танцы с бубном- ничё не получается
2) MSDN, ага увидел пространство имён, которое нужно подключить
3) собсно окончательный неработающий код

C++
1
2
3
using System.Management;
//++++++++++++++++++++=
ManagementObject x = new ManagementObject("stroka");
ругается, понятно на ManagementObject
"Ошибка 1 Не удалось найти имя типа или пространства имен "ManagementObject" (пропущена директива using или ссылка на сборку?) E:\vso_moio\программирование_на_C#\ConsoleApplication1\ConsoleApplication1\Progr am.cs 24
"
4) напоследок убеждаюсь ещё раз в обозревателе объеков, что действительно, в пространстве имён System.Management класса ManagementObject нет
5) грущу

+++++++++++++++++++++++++++++++++

Что же делать? Это не блажь на самом деле, если я буду знать алгоритм действий, как действовать в таких ситуациях, то всё будет круто. Только, сдаётся мне, не так просто тут мне чего-то скачать и обновить... Не пришлось бы студию переустанавливать... бр-р-р-р... Спасибо, кто откликнется.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.01.2013, 22:34
Ответы с готовыми решениями:

Следует дать конкретную постановку, т.е. указать, какие классы должны быть реализованы, какие должны быть в ни
Задание: Перечень классов: квитанция, накладная, документ, чек; Порядок выполнения работы...

я учусь на высшке на программиста.. какие могут быть задачи на экзамене 1й курс .2й семестр!!.. должны быть классы!!
я учусь на высшке на программиста.. какие могут быть задачи на экзамене 1й курс .2й семестр!!.....

Классы и методы в разных пакетах, должны быть PUBLIC?
Пытаюсь выстроить декомпозицию приложение, так чтобы функционал разнести в разные pakeges. К...

Классы. Задана программа.Нужно ее изменить за место переменных должны быть указатели
Задана программа.Нужно ее изменить за место переменных должны быть указатели ии... #include...

10
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
09.01.2013, 22:38 2
kravam, бывают проблемы с версией фреймворка: я тоже долго тупил, что не могу создать в методе Tuple<int,int> пока не заметил, что версия FW стоит 3.5, а они появились в 4.0
0
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
09.01.2013, 22:45  [ТС] 3
ну я так понимаю, что фреймворк это то, что нужно для запуска программ на моём компьютере, но для компиляции он не нужен.

Ну совсем по-простому- фреймворк, это некий ресурс, пусть даже архиглобальный. Его отсутствие или несоответствие требованиям обнаружится на стадии выполнения или запуска. Но не на стадии же компиляции!
0
Эксперт .NET
17685 / 12871 / 3365
Регистрация: 17.09.2011
Сообщений: 21,136
09.01.2013, 22:46 4
Цитата Сообщение от kravam Посмотреть сообщение
На C++ (gcc) так делается- скачиваешь библиотеку, распихиваешь файлы по директориям и работаешь
Настоящие танцы с бубном там начинаются при попытке построить команду компилятору и (особенно) линкеру.
Достаточно глянуть любой makefile проекта размером от среднего и выше.

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

Ну а кроме пространства там же на MSDN написана еще и сборка, которую надо подключить, а так же список фреймворков, поддерживающих данный класс.
В данном случае - System.Management.dll
0
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
09.01.2013, 22:58  [ТС] 5

Не по теме:

Ну про несколько лёгких пассов руками с линкёром мы потом поговорим.



Цитата Сообщение от kolorotur Посмотреть сообщение
Ну а кроме пространства там же на MSDN написана еще и сборка, которую надо подключить
написано .NET Framework 4.5
делать-то чего? Надо же сперва удостовериться, что у меня НЕ 4.5, так? А потом установить как-то 4.5, так?

Я, конечно, могу сам попробовать, но опять же, что пробовать-то? Делов наделаю, а студия мне не бесплатно досталась.
0
145 / 142 / 11
Регистрация: 11.09.2011
Сообщений: 411
09.01.2013, 23:03 6
у меня получилось -
1) добавь ссылку в проект:


2) используй пространство имен
1
Темная сторона .Net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
09.01.2013, 23:04 7
kravam,и еще убедитесь что не исп. .NET 4 Framework Client Profile.
0
Эксперт .NET
17685 / 12871 / 3365
Регистрация: 17.09.2011
Сообщений: 21,136
09.01.2013, 23:14 8
Цитата Сообщение от kravam Посмотреть сообщение
Ну про несколько лёгких пассов руками с линкёром мы потом поговорим.
Нет уж, спасибо
Я после довольно плотной работы с ITK про линкёр слышать не хочу.

Теперь по теме - учимся пользоваться MSDN.
Открывая страницу с документацией о каком-либо классе, в самом верху вы видите что-то вроде ".NET Framework 4.5 | Другие версии". Это - версия фреймворка, для которой вы в данный момент просматриваете документацию о классе (внутренности класса могут меняться от версии к версии).
Дальше идет краткое описание класса - что это такое и для чего он вообще нужен: "Представляет экземпляр WMI."
Потом идет иерархия наследования - тоже весьма полезная штука.
А вот дальше идет очень нужная информация для определения "координат" этого класса:
Пространство имен: System.Management
Сборка: System.Management (в System.Management.dll)
Это значит, что для того, чтобы студия могла откомпилировать ваш код, использующий этот класс, вам надо сделать две вещи:
1. Добавить ссылку на System.Management.dll (Project -> Add Reference, закладка .NET).
2. Добавить директиву using System.Management в шапку файла или использовать этот путь при каждом использовании класса ManagementObject в коде (System.Management.ManagementObject obj = new System.Management.ManagementObject())

Потом идет декларация класса - там можно посмотреть полезную информацию об атрибутах, примененных к этому классу и об интерфейсах, им реализуемых.
Ниже идет собственно "начинка" класса - конструкторы, свойства, методы, события. Иконки в левой колонке тоже не просто так - по ним можно определить, является ли член статическим, явной реализацией интерфейса, поддерживается ли в версии Compact Framework и пр.

После этой таблицы - тоже очень полезная информация: в каких версиях фреймворка имеется этот класс:
.NET Framework
Поддерживается в версиях: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0
.NET Framework (клиентский профиль)
Поддерживается в версиях: 4, 3.5 с пакетом обновления 1 (SP1)
Целевую версию вашего приложения можно подглядеть в свойствах проекта.

Потом идет список поддерживаемых платформ:
Windows 8, Windows Server 2012, Windows 7, Windows Vista с пакетом обновления 2 (SP2), Windows Server 2008 (роль основных серверных компонентов не поддерживается), Windows Server 2008 R2 (роль основных серверных компонентов поддерживается в пакете обновления 1 (SP1) или выше; системы на базе Itanium не поддерживаются)
Ниже - информация о потокобезопасности (имеет ли смысл синхронизировать вызовы членов этого класса).

Ну и в самом подвале, как правило, всевозможные примечания, примеры использования и прочая доп. информация.

Как видите, из вышеперечисленного довольно быстро можно найти причину, по которой проект с этим классом не хочет компилироваться.
Если прошли по всем пунктикам, вроде бы все совпадает, но все равно ничего не фачит, то тут уже либо глючит студия, либо слетел фреймворк. Проверить можно, попытавшись откомпилировать минимальный пример из командной строки. Если не сможет - значит фреймворк, если сможет - значит студия.
1
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
10.01.2013, 00:00  [ТС] 9
Ну вот, теперь я научился подключать библиотеки пространства имён. Мне и в голову не приходило, что надо куда-то ещё мышью тыкать.
0
Эксперт .NET
17685 / 12871 / 3365
Регистрация: 17.09.2011
Сообщений: 21,136
10.01.2013, 00:05 10
Цитата Сообщение от kravam Посмотреть сообщение
Мне и в голову не приходило, что надо куда-то ещё мышью тыкать.
Ну оно же, по сути, точно так же, как и в С/gcc: можно проинклюдить файл, но если линкеру не указать либу или он не отрезолвит символы - кранты.
Разница лишь в том, что тут это мышью через IDE делается
0
kravam
10.01.2013, 00:16  [ТС]     Как использовать классы, которых нет, но которые быть должны?
  #11

Не по теме:

Вот будет прикольно если этот проект на моей XP не запустится!

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.01.2013, 00:16

Нет посетителей на сайте а должны быть
Всем привет. Есть сайт avtolubiteli.com.ua, сайту около 2-х месяцев. Сайт находится на 2-й...

Нет настроек разгона ,хотя точно должны быть!
Gygabyte z97 hd3 +4770k точно знаю на этой материнке можно разгонять смотрел обзоры,но у меня...

Какой элемент отображения данных использовать, последние записи должны быть сверху
Добрый день. Суть вопроса такова. Есть БД в нее периодически (раз в 10-20 секунд ) добавляются...

Не могу найти компоненты, которые должны быть в Indy
Здравствуйте. Подскажите новичку, установил Делфи Берлин. Версия полная, но почему то не могу найти...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru