Nel libro di Cwalina & Abrams (p. 93), la regola "avoid publicly exposing enums with only one value" ha questo commento:
"A common practice for ensuring future extensibility of C APIs is to add reserved parameters to method signatures. Such reserved parameters can be expressed as enums with a single default value. This should not be done in managed APIs. Method overloading allows adding parameters in future releases."
E' proprio il caso del enum nidificato SingleSignonTicketType (SharePoint Portal Server 2003), creato solo per "riservare" il parametro Type nel metodo ReserveCredentialTicket, metodo a cui corrisponde la procedura esterna dallo stesso nome (vedi la DLL unmanaged ssocli.dll):
namespace Microsoft.SharePoint.Portal.SingleSignon
{
public class Credentials
{
//...
public static void ReserveCredentialTicket(Credentials.SingleSignonTicketType Type, string strTicket)
{
//...
}
public enum SingleSignonTicketType
{
Default
}
}
}
Abbastanza bruttino direi.