2009-12-11 28 views
3

當我用C#或VB.NET或其他.NET家族語言編寫的程序在Windows上運行時,並且調用System.Guid.NewGuid()的時代總是通過將呼叫轉發給Windows提供的UuidCreate()來執行,或者還有其他生成方式?是否System.Guid.NewGuid()始終通過Windows上的UuidCreate()實現?

+0

它爲什麼重要? – wowest 2009-12-11 14:51:26

+0

如果您的代碼依賴其隨機性,則用於創建Guid的算法可能很重要。 – Guillaume 2009-12-11 14:53:27

+0

只要生成GUID的函數遵循創建UUID的標準,碰撞的機率就很小。有關算法的詳細信息,請參閱http://www.opengroup.org/dce/info/draft-leach-uuids-guids-01.txt – 2009-12-11 16:22:35

回答

3

並非總是如此。根據它的文檔,UuidCreate函數僅在Windows Server 2000及更高版本上可用。 .Net框架至少有一個版本在Windows 98上運行,幷包含Guid類。因此它不能使用UuidCreate。 1.X肯定在Windows 98上運行,我不記得2.0。

嗯,我開始懷疑這是一個文檔問題。 CreateFile功能還表示,它只能在2000年及以上。也許這個文檔反映了98不是受支持的操作系統。

相關問題