GUID(全局統(tǒng)一標(biāo)識符)是指在一臺機(jī)器上生成的數(shù)字,它保證對在同一時空中的所有機(jī)器都是唯一的。通常平臺會提供生成GUID的API。生成算法很有意思,用到了以太網(wǎng)卡地址、納秒級時間、芯片ID碼和許多可能的數(shù)字。GUID的唯一缺陷在于生成的結(jié)果串會比較大。
GUID永遠(yuǎn)是方便的; 對于程序開發(fā)的各個方面,.NETFramework簡化了建立和處理GUID數(shù)值的過程。在.NET程序需要的地方,這一功能很容易地生成唯一的數(shù)值。
1. 一個GUID為一個128位的整數(shù)(16字節(jié)),在使用唯一標(biāo)識符的情況下,你可以在所有計算機(jī)和網(wǎng)絡(luò)之間使用這一整數(shù)。
2. GUID 的格式為“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中每個 x 是 0-9 或 a-f 范圍內(nèi)的一個十六進(jìn)制的數(shù)字。例如:337c7f2b-7a34-4f50-9141-bab9e6478cc8 即為有效的 GUID 值。
3. 世界上(Koffer注:應(yīng)該是地球上)的任何兩臺計算機(jī)都不會生成重復(fù)的 GUID 值。GUID 主要用于在擁有多個節(jié)點、多臺計算機(jī)的網(wǎng)絡(luò)或系統(tǒng)中,分配必須具有唯一性的標(biāo)識符。
4. 在 Windows 平臺上,GUID 應(yīng)用非常廣泛:注冊表、類及接口標(biāo)識、數(shù)據(jù)庫、甚至自動生成的機(jī)器名、目錄名等。
.NET中使用GUID
GUID 在 .NET 中使用非常廣泛,而且 .NET Framework 提供了專門 Guid 基礎(chǔ)結(jié)構(gòu)。
Guid 結(jié)構(gòu)的常用法包括:1) Guid.NewGUID()生成一個新的 GUID 唯一值2) Guid.ToString()將 GUID 值轉(zhuǎn)換成字符串,便于處理3)構(gòu)造函數(shù) Guid(string)由 string 生成 Guid 結(jié)構(gòu),其中string 可以為大寫,也可以為小寫,可以包含兩端的定界符“{}”或“()”,甚至可以省略中間的“-”,Guid 結(jié)構(gòu)的構(gòu)造函數(shù)有很多,其它構(gòu)造用法并不常用。
.NET Framework 中可以使用類 GuidConverter 提供將 Guid 結(jié)構(gòu)與各種其他表示形式相互轉(zhuǎn)換的類型轉(zhuǎn)換器。
在C#中生成一個GUID處理一個唯一標(biāo)識符使得存儲和獲得信息變得更加容易。在處理一個數(shù)據(jù)庫中這一功能變得尤其有用,因為一個GUID能夠操作一個主鍵。同樣,SQL Server也很好地集成了GUID的用途。SQL Server數(shù)據(jù)類型uniqueidentifier能夠存儲一個GUID數(shù)值。你可以通過使用NEWID()函數(shù)在SQL Server中生成這一數(shù)值,或者可以在SQL Server之外生成GUID,然后再手動地插入這一數(shù)值。
在.NET中,后面一種方法顯得更加直接。.NET Framework中的基本System類包括GUID數(shù)值類型。除此之外,這一數(shù)值類型包含了處理GUID數(shù)值的方法。特別地,NewGUID方法允許你很容易地生成一個新的GUID。
在.NET中GUID格式:
1、Guid.NewGuid().ToString("N") 結(jié)果為:38bddf48f43c48588e0d78761eaa1ce6
2、Guid.NewGuid().ToString("D") 結(jié)果為:57d99d89-caab-482a-a0e9-a0a803eed3ba (默認(rèn)的為第2種效果)
3、Guid.NewGuid().ToString("B") 結(jié)果為:{09f140d5-af72-44ba-a763-c861304b46f8}
4、Guid.NewGuid().ToString("P") 結(jié)果為:(778406c2-efff-4262-ab03-70a77d09c2b5)
新聞熱點
疑難解答