Что представляют собой классы и модули для С#

Может кто-то объяснить разницу между классом и модулем. Когда вы используете один против другого? Я использую С#.

Обновление: я имею в виду эквивалент С# модуля 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, который используется программистами для организации функций и подпрограмм в приложении.