Sí, la longitud es fija y sí, el número del medio es siempre 4 cuando se utiliza el formato estándar toString. Algunos de los bits en GUID (conocido como un UUID casi en cualquier lugar que no es ventanas) son fijos, aspectos como la versión etc ..
http://en.wikipedia.org/wiki/Uuid
EDITAR debo añadir que el "4 "solo se aplica a los Guids que se han generado de acuerdo con el algoritmo Guid.NewGuid tal como se implementó en .NET. No hay nada que le impida tomar cualquier byte arbitrario [16] y convertirlo en Guid. Por lo tanto, solo puede confiar en que sea 4 para la implementación actual del algoritmo en .Net. Si obtiene Guids de otra fuente, no puede depositar en el 4. Una actualización de .Net o posiblemente Windows (dependiendo de si .Net usa su propio generador o el de Windows) puede cambiar los números fijos del GUID
por ejemplo el siguiente código está trabajando completamente y no tendrá la 4 en la posición:
var rand = new Random();
var byteArray = new byte[16];
rand.NextBytes(byteArray);
var g = new Guid(byteArray);
Solo puede confiar en lo que dice la especificación sobre el GUID. Si la especificación no menciona una representación de cadena de longitud fija, entonces no confíe en ella. –
@Keith: el formato 8-4-4-4-12 es el estándar, tanto para MS como para OSF. MS docs decir de Guid.ToString() "El valor de este Guid, formateado de la siguiente manera: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" –
Ok, entonces usted está bien. –