Типы с одинаковыми именами совершенно допустимы для компилятора. Однако, хотя компилятор с радостью различает типы при условии, что ссылки и операторы использования однозначны, это не означает, что он является однозначным для программиста, читающего код.
Error
звучит так, как будто это может быть эквивалент класса Exception
, который является основой иерархии типов исключений CLR; это похоже на хорошую модель для описания ошибок. Возможно, вы могли бы вывести общее поведение между вашими классами ошибок в один базовый класс с именем Error
, а затем унаследовать его для получения более кратких или специфичных для проекта подклассов.