Частичные классы по проектам - PullRequest
9 голосов
/ 25 января 2010

Возможно ли иметь частичные классы в разных проектах.

например. Проект 1 имеет класс клиента. Project2, который является необязательным модулем, добавляет класс клиента, добавляя класс заказа и используя исходный класс клиента.

Ответы [ 4 ]

16 голосов
/ 25 января 2010

Вы не можете использовать ключевое слово partial, чтобы разделить код для класса между проектами. Ключевое слово partial - это трюк с компилятором; компилятор выведет один единственный класс из найденных частей, поэтому все части класса должны существовать с одним и тем же двоичным файлом. Как только класс скомпилирован, от него не осталось и следа, являющегося частичным классом.

Если вы хотите расширить существующий класс, вам нужно либо унаследовать его (если он не запечатан), либо создать свой новый класс, содержащий классы, из которых вы хотите объединить информацию.

1 голос
/ 25 января 2010

частичные классы являются полностью конструкцией компилятора - она ​​в основном объединяет определения классов вместе, а затем компилирует это. В .net отсутствует понятие «частичный класс», поэтому нельзя разделить частичные классы по разным блокам компиляции (проектам или сборкам)

1 голос
/ 25 января 2010

Нет. Частичный класс должен быть скомпилирован в том же контексте, то есть сборке.

Что вы, вероятно, хотите сделать, это использовать Наследование .

0 голосов
/ 28 марта 2017

вы не можете использовать частичный класс в отдельных проектах. Период, однако, вы можете использовать расширения Расширения класса или наследование или интерфейс

...