According to MSDN here and here (as well as the accepted answer to this qstn), the default accessibility for enums is public.
However, this code:
public class Test
{
enum Color { RED, BLUE, GREEN };
public void SetColor(Color c) { }
}
will raise this compile error:
Error 1 Inconsistent accessibility: parameter type 'Test.Color' is less accessible than method 'Test.SetColor(Test.Color)'
(which is the same error you get when you set the enum as private.) This error can only be resolved by explicitly modifying enum as public. Is the documentation incorrect?
[I’m compiling with C# 2010 and .NET 4.0.]
That is not true.
The default accessibility for enum types is the same as any other type; internal for top-level types and private for nested types.
The pages you linked to state that the default (and, in fact, only) accessibility level for enum members (
Red,Blue, etc) is public.