Кто-то может объяснить MustOverride?

Внедрение зависимости.

Мы предпочитаем сохранять наш бизнес-слой незнакомым с сетью по сравнению с невеб-сценарием. Вместо этого расположенные на слое объекты бизнес-логики берут ссылку DataContext в своем конструкторе, который (явно) позволяет совместно использовать DataContext и (неявно) позволяет совместно использовать объектов объекта от результатов запроса, поскольку они - все от того же контекста данных.

Также DataContexts реализуют IDisposable, таким образом, действительно необходимо управлять их временем жизни. Все наши веб-формы имеют базовый класс, и часть этого является datacontext свойством (лениво созданный). Тем путем все на странице может доля это, который чаще всего имеет место. От контекста избавляются вручную в событии OnUnload() страницы.

<час>
  • Вы не должны смешивать linq объекты от от различных контекстов данных, и Вы обычно попадаете в беду при использовании linq объектов, если datacontext был, Располагают () 'd.
6
задан dooburt 6 November 2009 в 10:55
поделиться

4 ответа

Это делается для того, чтобы вы могли предоставлять общие функции в базовом классе, но заставляли производные классы реализовывать определенные функции.

В вашей ситуации с фабрикой я бы предложил использовать интерфейс, а не абстрактный класс, но в других случаях это имеет смысл. System.Text.Encoding является хорошим примером абстрактного класса, как и System.IO.Stream .

но в других случаях это имеет смысл. System.Text.Encoding является хорошим примером абстрактного класса, как и System.IO.Stream .

но в других случаях это имеет смысл. System.Text.Encoding является хорошим примером абстрактного класса, как и System.IO.Stream .

10
ответ дан 8 December 2019 в 13:00
поделиться

Вы должны использовать Overrideable для метода, который имеет реализацию по умолчанию в базовом классе.
Если (разумная) реализация по умолчанию невозможна, используйте Mustoverride .

4
ответ дан 8 December 2019 в 13:00
поделиться

Я не специалист по VB.NET, но наверняка работал с C #. В C # эквивалентом является ключевое слово abstract. Его следует использовать в тех случаях, когда вы хотите, чтобы все классы, производные от вашего класса RoomFactory, реализовывали некоторое поведение, которое вы определили как абстрактное.

Предположим, в вашем примере, если вы хотите, чтобы все объекты Room, созданные унаследованными от класса RoomFactory, возвращали его размер. Вы должны создать функцию mustoverride, например ReturnSize в Roomfactory, и любой тип комнаты, который наследуется от этого, должен реализовывать эту функцию.

Вы можете сделать то же самое с интерфейсами. Но использование такого класса MustInherit позволяет вам добавить поведение по умолчанию в RoomFactory, которое будет общим для всех комнат.

Надеюсь, это поможет.

3
ответ дан 8 December 2019 в 13:00
поделиться

MustOverride указывает, что свойство или процедура не реализованы в этом классе и должны быть переопределены в производном классе, прежде чем их можно будет использовать.

1
ответ дан 8 December 2019 в 13:00
поделиться