Сравнение сборок в C и C # - PullRequest
0 голосов
/ 19 марта 2019

Мы знаем, что внутреннее ключевое слово означает, что доступ ограничен текущей сборкой.Я из C фона, поэтому C просто компилирует каждый исходный файл (.c) в сборку (.a), поэтому для .NET CLR, скажем, у нас есть две папки Model и Controller в приложении, внутри Model есть два классафайлы (a.cs и b.cs) и внутри Controller также есть два файла классов (c.cs и d.cs).Итак, когда мы скомпилируем проект, будут ли a.cs и b.cs скомпилированы в один и тот же файл сборки?или все файлы классов будут скомпилированы в один и тот же файл сборки?Поскольку с точки зрения C, это будет четыре файла сборки (компоновщик, конечно, создаст только один исполняемый файл)

Ответы [ 2 ]

0 голосов
/ 19 марта 2019

Чтобы просто ответить на ваши вопросы:

Таким образом, когда мы скомпилируем проект, a.cs и b.cs будут скомпилированы в тот же файл сборки? или все файлы классов будут скомпилированы в один и тот же файл сборки?

Да, они будут скомпилированы в один файл сборки.

0 голосов
/ 19 марта 2019

В конце концов все классы будут скомпилированы в одну сборку для проекта, но, поскольку вы говорите о том, чтобы иметь одно и то же имя класса в другом каталоге, в этом случае также будет только одна сборка, логически разделенная пространством имен, потому что классы в каталоге Model будут называться «projectName.Model», а классы в каталоге контроллера будут «projectName.Controller», но если вы поместите их в одно и то же пространство имен, вы столкнетесь с проблемой компиляции из-за дублирующегося класса (чтобы он работал вы можете сделать оба класса как частичный класс ).

Эта ссылка также может вам помочь

Надеюсь, это даст вам немного идей ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...