Что представляют собой классы и модули для С#
Может кто-то объяснить разницу между классом и модулем. Когда вы используете один против другого? Я использую С#.
Обновление: я имею в виду эквивалент С# модуля VB.
Ответы
Ответ 1
(Может быть, я должен быть ясен, в С# нет "Модулей", как в "Модуле" VB.NET)
В С# отсутствуют модули (например, модули в VB или VB.NET). Таким образом, вместо модуля, который компилируется и упаковывается в сборку, он более логичен.
В то время как класс - это четко определенная сущность Модуль может использовать класс (или классы) для работы. (Снова слово "модуль" используется логически)
Слово "Модуль" также используется в совершенно ином контексте, в System.Reflection.Module.
Ответ 2
Это сильно зависит от того, к какому "модулю" вы обращаетесь.
Модуль Visual Basic
В С# нет реального эквивалента для модуля VB.Net. Таким образом, он похож на статический класс, поскольку вы не можете создать экземпляр его, и все члены внутри него являются статическими. В С# для этого требуется явное статическое ключевое слово, а в VB.Net - неявное.
Большая разница, хотя и находится в поиске имени. В VB.Net, если модуль находится в области видимости, то любой из его методов можно вызывать без квалификации. Это не относится к статическим классам С#.
Помимо поиска имени, основное различие между классом и модулем заключается в том, что класс обычно полезен только с экземпляром типа.
System.Reflection.Module
Модуль в этом контексте представляет собой переносимый исполняемый файл (dll или exe). Данная DLL/EXE может состоять из нескольких модулей, если это сборка нескольких файлов. Он не имеет реальных отношений с отдельным классом.
Ответ 3
Модуль - это скомпилированная dll или exe, она содержит скомпилированные классы. Класс аналогичен классу на любом другом языке.
Кроме того, модули, будь то один или несколько, составляют сборки в .Net
Помните, что как только он скомпилирован в .Net, неважно, на каком языке он был написан, это все IL, поэтому термины, которые вы описываете, в данный момент являются довольно агностическими.
Ответ 4
A class - независимая единица данных и функций - поля, свойства и методы.
A модуль относится к коду, сгенерированному из одного физического файла. В большинстве случаев, когда вы пишете код в Visual Studio, один файл будет содержать один класс, интерфейс или структуру.
Скомпилированные библиотеки DLL или EXE называются сборками. Сборка может содержать любое количество модулей, а также другие ресурсы, такие как информация о версии. По умолчанию при компиляции сборки в Visual Studio сборка содержит каждый модуль, определенный в проекте.
Что касается того, когда вы будете использовать их: все время вы используете классы, интерфейсы и структуры, это основы. Модули - это вещи, которые обычно не имеют большого контроля; опять же, общепринятой практикой является один тип файла, который компилируется в один тип для каждого модуля.
Обычно вы используете отдельную сборку, когда хотите повторно использовать определенные типы (содержащиеся в определенных модулях) для нескольких проектов. Вы также можете использовать его для создания жесткой границы между различными компонентами приложения, т.е. Поместить логику базы данных в одну сборку и вашу бизнес-логику в другую.
Ответ 5
Модуль .NET Framework не совпадает с модулем в Visual Basic, который используется программистами для организации функций и подпрограмм в приложении (см. класс модуля в С#)
Если вы привыкли к модулю VB6 (метод, доступный без экземпляра), объявите функции как static в С#
Ответ 6
В С# нет эквивалентного модуля VB6. Ближайшим будет статический класс, но даже тогда члены класса не являются глобальными, поскольку они будут в модуле VB6.
Ответ 7
Из документов Microsoft,
Модуль представляет собой переносимый исполняемый файл, такой как type.dll или application.exe, состоящий из одного или нескольких классов и интерфейсов. В одном модуле может содержаться несколько пространств имен, а пространство имен может охватывать несколько модулей.
Один или несколько модулей, развернутых как единое целое, составляют сборку. Информацию о создании сборки с несколькими модулями см. в разделе Многофайловые сборки.
Обратите внимание, что модуль .NET Framework - это не то же самое, что модуль в Visual Basic, который используется программистами для организации функций и подпрограмм в приложении.