Поскольку вы явно не объявили модификатор доступа (т. Е. public
, protected
, internal
) в вашем перечислении, оно принимает значение по умолчанию (которое является internal
для классов и перечислений). Затем вы выставляете это перечисление через поле public
вашего класса Program
, что недопустимо, так как перечисление не видно вне его сборки.
Вам необходимо либо объявить перечисление как public
, либо изменить модификатор доступа для поля на internal
или private
.
Работает, когда вы удаляете public
из класса Program
, потому что он меняет класс Program
на внутренний - так же, как перечисление. Это нормально, поскольку ни один из них не является публично разоблаченным.