In base a MSDN here e here (nonché allo accepted answer to this qstn), l'accessibilità predefinita per enumerazione è public
. Tuttavia, questo codice:modificatore di accesso predefinito per enum in C#
public class Test
{
enum Color { RED, BLUE, GREEN };
public void SetColor(Color c) { }
}
solleverà questo errore di compilazione:
Error 1 Inconsistent accessibility: parameter type 'Test.Color' is less accessible than method 'Test.SetColor(Test.Color)'
(che è lo stesso errore che si ottiene quando si imposta l'enum come private
.) Questo errore può essere solo risolto modificando esplicitamente enum come public
. La documentazione è errata?
[Sto compilando con C# 2010 e .NET 4.0.]
Ciò fa riferimento all'accessibilità predefinita dei * membri * dell'enumerazione, non all'enum stesso. –
I nomi dei membri pubblici C#, inclusi i membri di enum, devono essere UpperCamelCase. – SLaks