Sì, la lunghezza è fisso e sì, il numero centrale è sempre 4 quando si utilizza il formato tostring standard. Alcuni dei bit in GUID (noto come un UUID quasi ovunque che non è finestre) sono fissate per indicare cose come versione ecc ..
http://en.wikipedia.org/wiki/Uuid
EDIT Vorrei aggiungere che il "4 "si applica solo ai Guids che sono stati generati secondo l'algoritmo Guid.NewGuid come implementato in .NET. Non vi è nulla che impedisca di prendere byte arbitrari [16] e convertirli in Guid. Quindi, è possibile contare solo su 4 per l'attuale implementazione dell'algoritmo in .Net. Se stai ricevendo Guidi da un'altra fonte, non puoi fare affidamento sul 4. Un aggiornamento a .Net o eventualmente a Windows (a seconda che .Net usi il proprio o generatore di Windows) potrebbe cambiare i numeri fissi del GUID
es il seguente è codice completamente funzionante e non avrà il 4 in posizione:
var rand = new Random();
var byteArray = new byte[16];
rand.NextBytes(byteArray);
var g = new Guid(byteArray);
fonte
2010-09-18 02:50:12
È possibile fare affidamento solo su ciò che le specifiche dicono sul GUID. Se la specifica non menziona una rappresentazione di stringa a lunghezza fissa, quindi non fare affidamento su di essa. –
@Keith - Il formato 8-4-4-4-12 è lo standard, sia con MS che con OSF. I documenti MS dicono di Guid.ToString() "Il valore di questo Guid, formattato come segue: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" –
Ok, allora sei bravo. –