Можно ли объявить частичный класс в двух проектах - PullRequest
7 голосов
/ 05 декабря 2011

Предположим, что мы создаем частичный класс в Project1 , и у нас есть Project2 , который имеет ссылку на Project1 . Как можно объявить какой-то другой методчастичный класс в Project2 ?

спасибо

Ответы [ 4 ]

14 голосов
/ 05 декабря 2011

Частичная конструкция - это только функциональность компилятора, позволяющая распределить класс по нескольким исходным файлам.Скомпилированный класс все еще живет в одной и только одной библиотеке классов (файл dll).

Существует два способа расширения класса в другой библиотеке:

  • Наследование, если класс не являетсяsealed.Это требует, чтобы вызывающий код обрабатывал все экземпляры объекта для создания экземпляра нового производного класса.
  • Методы расширения, которые делают код похожим, что в этом классе есть новые методы, но это всего лишь синтаксический сахар.Сам класс не изменится.
11 голосов
/ 05 декабря 2011

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

3 голосов
/ 05 декабря 2011

Вы можете использовать методы расширения , которые позволяют создавать дополнительные методы для существующего класса

2 голосов
/ 05 декабря 2011

Частичные классы не могут существовать вне границ сборки!

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