Согласно MSDN здесь и здесь (а также принятый ответ на этот qstn ) доступность по умолчанию для перечислений public
.
Тем не менее, этот код:
public class Test
{
enum Color { RED, BLUE, GREEN };
public void SetColor(Color c) { }
}
вызовет эту ошибку компиляции:
Error 1 Inconsistent accessibility: parameter type 'Test.Color' is less accessible than method 'Test.SetColor(Test.Color)'
(что является той же ошибкой, которую вы получаете, устанавливая перечисление как private
.) Эта ошибка может быть исправлена только путем явного изменения перечисления как public
. Документация неверна?
[Я компилирую с C # 2010 и .NET 4.0.]