2011-10-20 14 views
18

Bir GUID'de boş dizelerle çizgi değiştiren bir kodum var.Bir GUID'den tire kaldırmak iyi bir fikir midir?

Replace(System.Guid.NewGuid.ToString, "-", "") 

o guid benzersizliğini kaldırmak istiyorsunuz?

Ayrıca biri bunu doğrulayabilir mi?

GUID'leri veritabanımızda char (32) olarak depolıyoruz. Uygun mu? Farklı saatlerde uluslararası kullanıcılarımız olduğu için, karakter uzunluğunun 32'yi aşabileceğinden endişe ediyoruz. Teşekkürler.

+11

Bunun gibi, '-' karakterini değiştirmek yerine, Rehber'in ToString'ini kullandığını biliyor muydunuz? Basitçe cevaplamak için N formatı kullanın: System.Guid.NewGuid.ToString ("N") –

cevap

23

Hayır, Guid'in benzersizliği garanti edilir.
Tire'ler yalnızca okunabilirlik içindir: dahili olarak Guid 16 bayttır.
Daha fazla ayrıntı için Microsoft ve Wikipedia belgelerini görebilirsiniz.

public Guid(int a, short b, short c, byte[] d); 
public Guid(int a, short b, short c, byte d, 
      byte e, byte f, byte g, byte h, 
      byte i, byte 
public Guid(uint a, ushort b, ushort c, byte d, 
      byte e, byte f, byte g, byte h, 
      byte i, byte j, byte k); 
+3

+1, –

+0

Basit geri bildirim için geri döndüğünüz için veritabanında bir guid depoladık (32). Uluslararası web sitesi veya farklı zaman dilimi nedeniyle bu karakter uzunluğu 32'den fazla olabilir mi? Bu yeni sözdizimini öğretmek için – Salman

50

tire aynı yerde her zaman, bu nedenle, bu benzersizliğini azaltmaz:
çok yapıcıları bir göz atın.

System.Guid.NewGuid().ToString("N"); 

tire guid kendisi parçası olmayan bu documentation

+0

+1 Bu yeni sözdizimi :) – Marco

+0

Güzel, çok çok güzel. – fuzz

4

olduğu gibi tire olmadan bir GUID oluşturmak olacaktır. Bunlar, kılavuzların ortak bir temsilinin sadece bir parçasıdır. Bu nedenle kaldırma, Guid değerinin kendisini değiştirmeyecektir.

İlgili konular