C # поддерживает только одиночное наследование, но позволяет классам реализовывать несколько интерфейсов. В этом случае гораздо понятнее всегда указывать базовый класс в одном и том же месте, а не смешивать его с кучей интерфейсов.
Независимо от соглашения, спецификация требует, чтобы это все равно было , и именно поэтому вы видите эту ошибку.
Помните, в спецификации нет ничего, что говорило бы, что все ваши интерфейсы должны быть названы с большой буквы "I". - это просто соглашение. Поэтому, если в вашем классе реализованы интерфейсы, которые не следуют этому соглашению, и если спецификация позволяет вам указывать базовый класс и интерфейсы в любом порядке, вы не сможете легко определить, какой идентификатор был базовым классом, а какой - интерфейсами. , Пример:
class MyDerivedClass : A, B, C, D, E // which is the base class?
{
...
}