La documentación que está estudiando fue escrita en 2003 y no está actualizada para la última versión del lenguaje. Sugiero que deje de estudiar el archivo de la documentación de 2003 y lea la documentación de 2010 si está utilizando una versión más moderna de C#.
La referencia definitiva que responde a su pregunta es la especificación de C# sección 8.7.2, una parte de la cual reproduzco aquí para su conveniencia.
El tipo de gobierno de una sentencia switch se establece mediante el interruptor expresión.
• Si el tipo de la expresión interruptor está sbyte, byte, corta, ushort, int, uint larga, ulong, bool, char, cadena o un tipo de enumeración, o si es el de tipo anulable correspondiente a uno de estos tipos, , que es el tipo de gobierno de la declaración de interruptor .
• De lo contrario, exactamente una implícita conversión definida por el usuario debe existir con el tipo de la expresión switch a uno de las siguientes posibles de gobierno tipos: sbyte, byte, short, ushort, int, uint long, ulong, char, string, o, un tipo anulable correspondiente a uno de esos tipos.
• De lo contrario, si no existe tal conversión implícita, o si existe más de uno de tales implícita conversión, un tiempo de compilación se produce error.
No todos los tipos que se integran en el lenguaje son integrales (System.Type, objeto ...). Básicamente, un tipo es integral si está en la lista de tipos integrales, una definición tautológica, pero no obstante verdadera. – SWeko
@SWeko: en este contexto [integral] (http://wordnetweb.princeton.edu/perl/webwn?s=integral) significa "de o indicado por un número entero", no "incorporado". – configurator
@configurator: sí, y eso es exactamente lo que estoy diciendo en el comentario. – SWeko