public class ViewBaseBase : UserControl
Если какой-либо ViewBaseBase должен быть UserControl, то это предпочтительнее, чем интерфейс, поскольку он обеспечивает это.Если ViewBaseBase предоставляет код, а не только сигнатуры (все является абстрактным), то это единственный возможный способ сделать что-то без каких-либо действительно сложных сверток, потому что C # не обеспечивает множественное наследование.Если ViewBaseBase предоставляет только сигнатуры (все абстрактно) и что-то может быть ViewBaseBase, не являясь UserControl (даже если не в вашем проекте), то я бы рассмотрел интерфейс.
Во многом та же логикапоследующие уровни иерархии.
На всей иерархии это мешает в любом случае?Если это так, то, возможно, стоит рефакторинг тем или иным образом, но если это не так, я бы даже не задумывался об этом.В конце концов, цель иерархии классов состоит в том, чтобы облегчить жизнь разработчикам, поэтому решающее значение имеет то, делает ли это это или нет.