Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
-15 / 10 / 6
Регистрация: 03.10.2012
Сообщений: 532

[Манул=Гайд=Статья]Классы и DLL

13.06.2013, 09:05. Показов 2602. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Многие новички которые не работали в сфере программирования и хотят сразу работать с C# задаются вопросами:
  1. Если весь код можно уместить в <FORM.CS> то зачем мучатся с разными классами и DLL?
  2. Класс - А что это в обще такое?(По русски, по деревенски кто бы объяснил)
  3. dll? А для чего он в обще и что это такое?
  4. Как написать класс?
  5. Как подключить DLL к проекту с содержимым его.




И так - Приступим отвечать:
1. Если хочется написать калькулятор - то ради бога... Но если вы планируете что то писать на уровне < Диспетчера задач> или же <Браузера> то у вас будет много мусора(Лишнего кода который вероятно не раз будет повторятся.) А также если вам захочется обновить программу то вам придётся передавать весь - цельный файл который будет весить очень-очень много.


2. Класс - Это набор общих функций которые не относятся к элементам управления не какого отношения. Они служат в основном для расчётов или общих действий. Это инструменты! Которые вы можете использовать в любой момент.



3. Dll это файл хранящий в себе классы или элементы управлений, возможно даже и формы. Но не предназначенный для прямого запуска как exe файла. Он снабжает exe файл который его вызывает теми классами которые запрашивает Запущенная программа.



4. Если вы хотите работать с элементами или формами в классе, то вы так и не уяснили что это такое. Класс это функция для расчёта или запуска или поиска чего либо. Но она не имеет доступа к форме и её элементам. Только к статичным переменным и методам.
Как создать класс? 1. Жмём CTRL+Shift+A в открытом проекте и выбераем класс.
Откроется вот такой вот код:
C#
1
2
3
4
5
6
using System.Text;
using System;
Public class Class1
  {
 
  }
Изменяем Class1 на нужное вам название вызова так как вызов начинается именно с этого. Если мы вставим внутрь метод PlaySousnds то вызов функции будет выглядить <Class1.PlaySousnds();>
Далее нам нужно вставить функцию. Допустим это будет воспроизведение .wav файлов.
Подключаем библиотеку <using System.Media;>
Далее пишим метод внутри класса(Что бы его можно было вызвать нужно его создовать через public static)
C#
1
2
3
4
5
public static void Interface(string sousnd)
        {
            SoundPlayer play = new SoundPlayer("./Sousnd/Interface/" + sousnd + ".wav");
            play.Play();
        }
Вот. В данном случае от корневой папки где хранится программа из папки /Sousnd/Interface/
будет вызываться файл. sousnd это название его. Например - Warning
Значит его вызов будет выглядить так Class1.Interface("Warning");
и будет вызываться файл /Sousnd/Interface/Warning.wav
Использую вместо данного класса везде в коде мы можем указывать только Class1.Interface("Warning"); Не правда ли компактно?


5. После как вы создали проект если вы ходите просто добавить уже готовый dll файл то:
В <обозревателе решений> жмём правой кнопкой миши на <ссылки> и жмём добавить ссылку и там жмём выбрать файл в последний вкладке и выбираем файл. Если файл был создан в Visual студии то он его примет.

Если же вы создали новый проект и хотите создать новый dll и создавать его вместе с проектом то:
В <обозревателе решений> Жмём на самую верхнюю надпись - Название решения вашего проекта правой кнопкой миши и жмём в <Добавить> на <Добавить новый проект> или просто <Добавить проект> но не <Добавить существующий проект> и выбираем уже <Библиотека класса> а далее по пункту 4.


Думаю помог многим новичкам... Прошу закрыть данную тему так как она считается манулом а не темой для обсуждения.
 Комментарий модератора 
Темы по просьбе пользователей не удаляются и не закрываются.
Для создания мануалов есть спец.регламент https://www.cyberforum.ru/faq/thread55331.html
в разделе https://www.cyberforum.ru/faq/
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.06.2013, 09:05
Ответы с готовыми решениями:

Классы Книга и Статья с применением абстрактных классов
Выполнить любые 3 (из 6) задания на C# (тема была разделена на части) 2. Создайте консольное приложение. В нем разработайте...

[Манул+Исходник]Клиент-сервер
Здравствуйте.... Я хочу поднять извечную тему... Клиент-Сервер. Многие хотят создавать проекты маленькие и большие и что бы в них модно...

Статья о создании и использовании DLL
Ребят плз подкиньте доку о создании DLL на VC++. и если кто знает линк, конвертации C++ DLL в декларацию для VB. Митаюсь между языками...

8
3 / 3 / 1
Регистрация: 07.12.2010
Сообщений: 28
13.06.2013, 12:55
4-й пункт. Почему же нельзя?
C#
1
2
3
4
5
6
7
8
9
10
11
12
public class FormLink
{
   private Form1 form;
   public FormLink(Form1 _form)
{
  form = _form;
}
public void DoSomething()
{
   form.BackColor = Color.Black;
}
}
Возможно и говнокод, но работает. Изменения произойдут с той формой, которую мы отправили в конструктор.
0
-15 / 10 / 6
Регистрация: 03.10.2012
Сообщений: 532
13.06.2013, 14:05  [ТС]
Как вариант.. Но я написал гайд по тому до чего сам дошёл на протяжении своего изучения.
0
 Аватар для Дмитрий3241
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
Записей в блоге: 6
13.06.2013, 14:41
Цитата Сообщение от SkoTi Посмотреть сообщение
C#
1
public static void Interface(string sousnd)
Ммм...
Цитата Сообщение от SkoTi Посмотреть сообщение
C#
1
2
3
Public class Class1
* {
}
Ну и тут беда...

sousnd
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
13.06.2013, 15:04
Лучший ответ Сообщение было отмечено как решение

Решение

SkoTi, начнем с того, что твой "мануал", еще больше запутает новичка. Большинство написанного - бред, освещенный с однобокой (очень низкой) колокольни.
Разбор по пунктам:
1) новичкам всё равно как подключить dll, им это не нужно, особенно на стадии обучения созданию классов.
2)
Цитата Сообщение от SkoTi Посмотреть сообщение
Класс - Это набор общих функций которые не относятся к элементам управления не какого отношения

Откуда это определение? Что за самодеятельность?
Класс — это логическая структура, позволяющая создавать свои собственные пользовательские типы путем группирования переменных других типов, методов и событий. [MSDN http://msdn.microsoft.com/ru-r... fc042.aspx]
Класс (программирование) — абстрактный тип данных в объектно-ориентированном программировании, задающий общее поведение для группы объектов; модель объекта.[Wiki http://ru.wikipedia.org/wiki/%... 1%81%D1%81]
К элементам управления классы имеют самое прямое отношение, потому что элементы управления это тоже классы.
3) Почитай определение dll на MSDN
DLL представляет собой библиотеку, которая содержит код и данные, которые могут использоваться несколько программ одновременно. Например, в операционных системах Windows библиотеки DLL Comdlg32 выполняют общие функции, связанные с диалоговым окном. Таким образом, каждая программа может использовать функциональность, которая содержится в этой библиотеке DLL для реализации диалогового окна Открыть. Это помогает повысить уровень повторного использования кода и использование памяти эффективно. http://support.microsoft.com/kb/815065/ru
на wiki тоже доходчиво изложеноhttp://ru.wikipedia.org/wiki/%... 0%BA%D0%B0
4)
Цитата Сообщение от SkoTi Посмотреть сообщение
Класс это функция...

С каких пор класс стал функцией?!
Цитата Сообщение от SkoTi Посмотреть сообщение
...она не имеет доступа к форме и её элементам. Только к статичным переменным и методам.
а кто тогда имеет доступ к нестатичным переменным и методам?
5) Единственный полезный пункт.

Цитата Сообщение от SkoTi Посмотреть сообщение
Думаю помог многим новичкам...
Думаю новичкам вообще не стоит читать данную тему.

Цитата Сообщение от SkoTi Посмотреть сообщение
я написал гайд по тому до чего сам дошёл на протяжении своего изучения.
Ты еще сам очень мало (практически ничего) не знаешь, чтобы писать учебную литературу. Особенно после этого заявления 3 дня назад:
Цитата Сообщение от SkoTi Посмотреть сообщение
Я обучаюсь C# но не по книгам а по примера из интернета а также из небольших статеек...
Как человек, который даже букварь не видел, может написать учебник по русскому языку?!

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

SkoTi, не пиши пока что мануалы, не твое это. Почитай книжки умные, подучись сам, ну а там видно будет...
4
-15 / 10 / 6
Регистрация: 03.10.2012
Сообщений: 532
14.06.2013, 11:57  [ТС]
И всёже!... Да пару косяков есть но они не связаны с мыслью... Я писал для таких же как я манул.. Если бы я его в своё время нашёл бы... Я бы много через что перепрыгнул...

да... можно и лучше разобрать и много что обойти но я писал что без научных и каких либо фраз чисто на русском языке раскладывая мысль... Кому то пригодится кому то нет... Это уже их проблемы.
0
169 / 132 / 29
Регистрация: 16.02.2013
Сообщений: 867
14.06.2013, 17:52
Новички "учат" новичков

SkoTi, не, ну то, что класс - это функция, очень хорошо разьяснили. Новички сразу поняли все, "с чем его едят"

Если бы я его в своё время нашёл бы... Я бы много через что перепрыгнул...
через что перепрыгнул? Искать нужно в книгах, там очень все подробно рассказывается.
0
-15 / 10 / 6
Регистрация: 03.10.2012
Сообщений: 532
14.06.2013, 20:50  [ТС]
То что вы приводити цитату
Цитата Сообщение от Winhttp22 Посмотреть сообщение
что класс - это функция
Это опечатка... Выше написано что класс это набор функций!
0
17.06.2013, 09:36
 Комментарий модератора 
Я думаю ТС понял и принял сказанное. Для исключения дальнейшего оффтопа тема закрыта
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.06.2013, 09:36
Помогаю со студенческими работами здесь

Работа с DLL в Visual Basic (статья)
В данной статье описаны основные способы работы с DLL в языке программирования Visual Basic. Рассчитана прежде всего на начинающих...

Как создать DLL в Delphi (Учебная статья)
Вобщем я решил в каществе учебной статьи выложить видео по созданию DLL тут все просто для начинающих пойдет. Текст файла...

Создание процедурных DLL в Visual Basic (статья)
Создание процедурных DLL в Visual Basic Несколько слов о резонах создания процедурных Dll на VB. Как известно, VB позволяет без...

Классы в DLL
Здравствуйте. Можете объяснить с точки зрения памяти, почему экспорт классов запрещен в DLL? Долго искал, как это сделать, понял, что,...

Классы в dll
Господа как можно поместить свой класс в dll и потом использовать этот класс в своей программе ? Примного благодарен буду за разъеснение...


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

Или воспользуйтесь поиском по форуму:
9
Закрытая тема Создать тему
Новые блоги и статьи
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru