(я изначально думал, что) Вы должны использовать 'унаследовать' с (не более одного) базовым классом . Вы можете использовать «интерфейс» для любых интерфейсов, которые вы собираетесь реализовать.
Так что в случае IDisposable это должен быть 'interface'.
РЕДАКТИРОВАТЬ, хорошо, компилятор позволяет, но это может быть ошибкой, я посмотрю
РЕДАКТИРОВАТЬ: оказывается, что это скорее всего ошибка, и вероятные интерфейсы заставят вас использовать «наследовать» для наследования других интерфейсов, идея в том, что «унаследованные» члены всегда непосредственно видны в смысле «неявного интерфейса» тогда как объявление 'interface' для класса является 'явным' интерфейсом, который требует приведения к этому типу интерфейса для использования этих членов. Так или иначе, мы, вероятно, уберем эту гибкость в синтаксисе языка, так что есть только один способ написать это, а не два эквивалентных способа.