2013-06-18 30 views
13

Tôi đã có rất nhiều mã đang sử dụng GUID (một kiến ​​trúc được giao cho tôi - không phải lựa chọn của tôi).Chỉ định GUID trong C#

Chủ yếu, các giá trị đến từ cơ sở dữ liệu và tải vào bộ nhớ từ đó. Tuy nhiên, tôi đang làm một số thử nghiệm và tôi cứng mã hóa một số GUIDs vào mã.

Tôi chưa tìm được cách dễ dàng để gán GUID, vì vậy tôi đã sử dụng Guid.Parse ("...."). Có cách nào dễ dàng hơn để gán GUIDS trong C#?

value = Guid.Parse("11223344-5566-7788-99AA-BBCCDDEEFF00"); 

Có vẻ như rất nhiều chi phí để tạo chuỗi rồi phân tích cú pháp. Tôi nghĩ rằng sẽ có một cách dễ dàng hơn để trực tiếp chỉ định nó.

+1

Bạn có cần các 'Guid' s để có giá trị cụ thể? Nếu không, thì ... 'var myGuid = Guid.NewGuid();'? – anaximander

+0

Vâng, thật không may, tôi làm. Tất cả chúng đều được gắn lại với các giá trị cơ sở dữ liệu (PK và FK). Không phải những gì tôi đã bắt đầu, nhưng tôi đã không tự xây dựng hệ thống. Đoạn mã trên chỉ là một ví dụ ngớ ngẩn, không phải trực tiếp từ codebase của tôi. – Richard

Trả lời

29

Nếu bạn đã có một chuỗi đại diện của Guid, bạn có thể làm điều này:

Guid g = new Guid("11223344-5566-7788-99AA-BBCCDDEEFF00"); 

Và nếu bạn muốn có một thương hiệu mới Guid sau đó chỉ cần làm

Guid g = Guid.NewGuid(); 
+0

Vâng, đúng vậy. Tôi nghi ngờ nó vẫn đang làm một .Parse() bên dưới bao gồm, nhưng ít nhất nó sạch hơn trong mã. Cảm ơn. – Richard

+0

Tôi chắc chắn bạn đã đúng, nhưng như bạn nói, điều này có vẻ sạch hơn. Ngoài ra, bạn đã từng xem loạt blog của Eric Lippert về Guids chưa? Nó khá thú vị (tôi biết bạn đang mắc kẹt với họ, vì vậy có thể không thích hợp với bạn): http://blogs.msdn.com/b/ericlippert/archive/2012/04/24/guid-guide-part-one .aspx –

1

Trong trường hợp bạn sử dụng guid là hằng số - bạn có thể đặt guid trong cài đặt dự án của mình. enter image description here hơn bạn có thể tiếp cận với bạn giá trị theo cách sau:

var myGuid = Properties.Settings.Default.MyGuid; 
0

nếu bạn đi cho các tùy chọn liên tục, bạn có thể sử dụng phương pháp này Guid (một trong sáu sẵn):

private static const Guid PUBLIC_KEY = new Guid((int)0x93EE8E7F, 0x13FA, 0x4C6D, 
     new byte[] { 0x9D, 0x32, 0xE6, 0xEC, 0xD1, 0x4A, 0x91, 0xA7 }); 
// {93EE8E7F-13FA-4C6D-9D32-E6ECD14A91A7}