Я планирую реализовать свой собственный набор ограничений, и мне трудно понять, как реализовать следующие методы класса Constraint
.
public abstract class Constraint
{
public abstract void WriteDescriptionTo( MessageWriter writer );
public virtual void WriteMessageTo( MessageWriter writer );
public virtual void WriteActualValueTo( MessageWriter writer );
}
Документация предлагает прочитать исходный код, чтобы получить хорошее представление о том, как их использовать, но я изучил множество ограничений и не видел большого отклонения от их реализации - обычно WriteDescriptionTo()
является единственным реализованным методом.
Из моих наблюдений:
WriteMessageTo()
вызывается для записи сообщения об ошибке утверждения в консоль
WriteActualValueTo()
форматирует значение фактического параметра, заданного в ограничении, для записи в консоль
Однако я не понимаю цели WriteDescriptionTo()
и не понимаю, почему она абстрактна - особенно когда достаточно переопределения WriteMessageTo()
.