Видимо я не могу иметь такие номера, как
это "a.b.202.x" в пространстве имен.
это то, на что он жаловался.
кто-нибудь знает почему?
По той же причине, по которой вы не можете объявить int 202;
- идентификаторы не могут начинаться с цифр в C #.
EDIT
Вот попытка объяснить вашу специфическую (странную) ошибку компилятора, воспроизведя ее.
Следующий код:
namespace a.b
{
enum myEnum {}
}
namespace a.b.202.x
{
enum myEnum {}
}
терпит неудачу с любопытными (в любом случае) ошибками:
{ expected
The namespace 'a.b' already contains a definition for 'myEnum'
I предполагает , что причина этого в том, что неверный идентификатор заставляет компилятор рассматривать второе объявление пространства имен как "искаженное", игнорируя .202.x
. Если это так, отсюда следует, что компилятору действительно должно показаться, что второй тип myEnum
находится в пространстве имен a.b
, что, конечно, будет дубликатом.
Это подтверждается еще и тем фактом, что если вы полностью избавитесь от первого пространства имен (и перечисления в нем) и перекомпилируете, вы увидите, что полное имя второго типа перечисления выводится как a.b.myEnum
(несмотря на невозможность компиляции).