De acuerdo con MSDN here y here (así como el accepted answer to this qstn), la accesibilidad predeterminada para enums es public
. Sin embargo, este código:modificador de acceso predeterminado para enum en C#
public class Test
{
enum Color { RED, BLUE, GREEN };
public void SetColor(Color c) { }
}
elevará este error de compilación:
Error 1 Inconsistent accessibility: parameter type 'Test.Color' is less accessible than method 'Test.SetColor(Test.Color)'
(que es el mismo error que se obtiene cuando se establece la enumeración como private
.) Este error sólo puede ser resuelto modificando explícitamente enum como public
. ¿La documentación es incorrecta?
[Estoy compilando con C# 2010 y .NET 4.0.]
Eso hace referencia a la accesibilidad predeterminada de los * miembros * de la enumeración, no la enumeración en sí. –
Los nombres de los miembros públicos de C#, incluidos los miembros enum, deben ser UpperCamelCase. – SLaks