Vâng, chiều dài là cố định và có, số lượng trung luôn là 4 khi bạn sử dụng định dạng toString chuẩn. Một số các bit trong GUID (được gọi là một UUID hầu như bất cứ nơi nào mà không phải là cửa sổ) được cố định để chỉ những thứ như phiên bản vv ..
http://en.wikipedia.org/wiki/Uuid
EDIT tôi nên thêm rằng "4 "chỉ áp dụng cho các hướng dẫn đã được tạo theo thuật toán Guid.NewGuid như được triển khai trong .NET. Không có gì ngăn cản bạn lấy bất kỳ byte tùy ý nào [16] và chuyển đổi nó thành Guid. Vì vậy, bạn chỉ có thể ngân hàng trên nó là 4 cho việc thực hiện hiện tại của thuật toán trong. Net. Nếu bạn nhận được hướng dẫn từ một nguồn khác, bạn không thể ngân hàng trên 4. Cập nhật cho .Net hoặc có thể là cửa sổ (tùy thuộc vào. Net sử dụng trình tạo của riêng nó hoặc Windows) có thể thay đổi số cố định của GUID
ví dụ sau đây là hoàn toàn đang làm việc và sẽ không có 4 trong số các mục:
var rand = new Random();
var byteArray = new byte[16];
rand.NextBytes(byteArray);
var g = new Guid(byteArray);
Nguồn
2010-09-18 02:50:12
Bạn chỉ có thể dựa vào những gì spec nói về GUID. Nếu spec không đề cập đến một đại diện chuỗi cố định chiều dài, sau đó không dựa vào nó. –
@Keith - Định dạng 8-4-4-4-12 là tiêu chuẩn, cả với MS và OSF. MS tài liệu nói về Guid.ToString() "Giá trị của hướng dẫn này, được định dạng như sau: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" –
Ok, sau đó bạn là tốt. –