Можно ли создавать идентичные концы
Можно ли создавать одинаковые контуры в одном приложении
Guid id = Guid.NewGuid();
Ответы
Ответ 1
Технически, да. Созданный Guid выглядит так:
26de36b7-76f5-4f17-8f9d-44eb429f151b
Это означает 32 символа, которые могут быть буквой (26 возможностей) или цифрой (10 возможностей)
Это означает, что 36 позиций на позицию в общей сложности 36 ^ 32, что составляет ок. 60 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000.
Это означает, что если вы создадите 2 000 000 000 000 000 000 000 000 000 000 000 000 000 гидов каждые миллисекунды (что невозможно), вы в среднем получите один и тот же guid, созданный дважды один раз, а все остальные гиды будет уникальным.
Так на практике. Нет;)
Ответ 2
Если вы спрашиваете, высок ли риск создания Guid.NewGuid()
создания повторяющихся указателей, тогда ответ будет отрицательным. Это взято из Wikipedia:
Значение GUID представляется как шестнадцатеричная строка с 32 символами, например {21EC2020-3AEA-1069-A2DD-08002B30309D} и обычно хранится как 128-битное целое число. Общее количество уникальных ключей - 2128 или 3,4 × 1038 - примерно 2 триллиона за кубический миллиметр всего объема Земли. Это число настолько велико, что вероятность того, что одно и то же число генерируется дважды, крайне мало.
Если вы спросите нас, как создать два дубликата, то это ответ:
Guid g1 = new Guid("21EC2020-3AEA-1069-A2DD-08002B30309D");
Guid g2 = new Guid("21EC2020-3AEA-1069-A2DD-08002B30309D");
Ответ 3
теоретически возможный? Да
Practicaly? У вас больше шансов выиграть лотерею 10 раз подряд, чем создание двух одинаковых GUID, даже в одном приложении.
См. Простое доказательство того, что GUID не уникален
Ответ 4
Guid.NewGuid() всегда будет создавать уникальный Guid во всем мире не только внутри одного приложения.
Ответ 5
U в GUID означает Unique.;-) Так что это не должно быть возможно.
Ответ 6
На самом деле, это произошло. У меня была таблица базы данных, содержащая 7 элементов. Из моей программы я добавил новый экземпляр, используя Guid.NewGuid()
для своего идентификатора. Я получил DbUpdateException
, указав, что идентификатор идентичен существующему. Попробовал снова, он отлично работает.