Абстрактный класс внутри интерфейса? - PullRequest
0 голосов
/ 09 сентября 2011

У меня будет несколько классов, которые будут наследоваться от базового абстрактного класса.

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

Вложение абстрактного класса в базовый абс.Класс, похоже, не работает, потому что во время фактического кодирования оба вложенных абс.класс и вложенный класс в подклассе доступны (отображаются в intellisense).

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

Есть идеи?

Уточнения из комментариев:

У меня есть три таблицы, которые имеют около 50 общих полей. Каждая из них также имеетнабор уникальных полей.

Я хочу иметь один класс для каждого (потому что они имеют разные функции biz), но хочу иметь некоторые общие методы, относящиеся к общим полям.

Так что теметоды идут в базовом классе abs. Я также хочу один вложенный класс в базовом классе для общих полей. Однако для уникальных полей я хочу убедиться, что всякий, кто кодирует подкласс, включает в себя вложенный класс для уникальных полей, поэтомунужен вложенный класс abs или что-то еще

Это уникальные поля, которые я хочу, чтобы разработчикисгруппировать во вложенный класс.Итак, у нас есть два набора вложенных классов: «CommonData» и «UniqueData».Число составляет около 190 общих полей и до 10 уникальных, поэтому я пытаюсь создать несколько группировок, чтобы с ними было легче работать.

Ответы [ 2 ]

0 голосов
/ 10 сентября 2011

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

VB.Net может иметь классы, объявленные внутри интерфейсов, C # не может.

Public Interface Foo

    MustInherit Class Bar

    End Class

End Interface

Хотя это может быть немного экзотично - это может сбить меня с толку, если я найду его в каком-то коде.

0 голосов
/ 09 сентября 2011

Просто добавьте в базовый класс (или интерфейс) свойство типа вложенного класса

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