Asp.net: частичные классы и наследование

У меня есть класс, разбитый на два файла. Один из них сгенерирован, другой содержит неподготовленный материал.

Я хочу, чтобы мой класс наследовался от базового класса. Мне нужно, чтобы оба файла наследовали? Или класс наследует базовый класс, если либо частичный класс

В сгенерированном foo.vb:

Partial Public Class Foo Inherits BaseClass

В создаваемом вручную файле foo.vb:

Partial Public Class Foo

Это, похоже, не имеет значения (в соответствии с тем, что я вижу в Reflector, так или иначе).

Может ли кто-нибудь объяснить, как это работает? Компилятор просто объединяет два?

Ответ 1

Только один из них должен наследовать.

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

У вас может быть следующее:

partial class one : base {}
partial class one {}

и это:

partial class one : base {}
partial class one : base {}

но не этот

partial class one : fu {}
partial class two : bar {}

потому что последний объединяется в:

class one : fu, bar {} 

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