Em um dos projetos em que estou trabalhando, o seguinte padrão é visto regularmente:
var guid = Guid.NewGuid().ToString();
while (guid == Guid.Empty.ToString())
{
guid = Guid.NewGuid().ToString();
}
Embora eu entenda que um GUID não é garantido como único e, de acordo com a documentação do MSDN, um GUID gerado pode ser zero , essa é uma consideração prática que realmente vale a pena enviar testes de ciclo para ambos no sentido computacional e em termos de tempo do desenvolvedor pensando nisso ?