2011-08-05 24 views
5

Tôi muốn xác định User Define Guid in C#. Tôi muốn chèn nội dung này vào đối tượng Guid của tôi:Xác định User defined Guid

dddddddddddddddddddddddddddddddddd.

Khi tôi làm điều này:

Guid user = "dddddddddddddddddddddddddddddddd"; 

tôi nhận được err: Hệ thống không thể chuyển đổi từ String để System.Guid. Tôi nên làm gì đây?

+3

Chỉ tò mò là tại sao bạn lại muốn điều này. Do sự lười biếng của người dùng, có khả năng cao là người dùng sẽ chỉ nhập vào tất cả một ký tự như bạn đã hiển thị và sau đó sẽ có bản sao - theo định nghĩa KHÔNG phải là id "toàn cầu duy nhất". – David

+2

Tôi đang làm một số thử nghiệm đơn vị. Đó là lý do tại sao ... và một trong những chức năng của tôi cần Guid như một param. –

+1

Hoàn toàn hợp lý. Cảm ơn vì đã thỏa mãn sự tò mò của tôi! – David

Trả lời

11

Có vẻ như bạn muốn:

Guid user = Guid.Parse("dddddddddddddddddddddddddddddddd"); 

Lưu ý rằng khi bạn in lại hướng dẫn, nó sẽ được định dạng khác y:

// Prints dddddddd-dddd-dddd-dddd-dddddddddddd 
Console.WriteLine(user); 

Bạn có thể gọi các nhà xây dựng Guid(string) thay vào đó, nhưng cá nhân tôi thích cách gọi phương thức Parse - đó là mô tả nhiều hơn về những gì đang xảy ra, và nó theo ước tương tự như int.Parse vv Mặt khác, Guid.Parse chỉ được giới thiệu trong .NET 4 - nếu bạn đang sử dụng phiên bản .NET cũ hơn, bạn sẽ cần sử dụng hàm tạo. Tôi tin rằng có một số khác biệt về giá trị nào sẽ được chấp nhận bởi các cuộc gọi khác nhau, nhưng tôi không biết chi tiết.

+0

Cảm ơn, điều đó đã hiệu quả. –

+1

Để nhận được cùng một chuỗi trong đầu ra, sử dụng ['user.ToString (" N ")'] (http://msdn.microsoft.com/en-us/library/97af8hh4.aspx). –

5

một GUID phải được 32 ký tự formated đúng và nó cũng sẽ được gọi là như thế này

Guid user = new Guid("aa4e075f-3504-4aab-9b06-9a4104a91cf0"); 

bạn cũng có thể có một tạo

Guid user = Guid.NewGuid(); 
+1

Guid.Parse xử lý đầu vào đã cho mà không có bất kỳ vấn đề nào, cũng như hàm tạo Guid. –

+0

LOL! Bạn lấy Guid từ đâu? –

+0

@Jon Skeet, cảm ơn không bao giờ biết điều đó. –

4

Bạn muốn sử dụng Guid.Parse cho việc này:

Guid user = Guid.Parse("dddddddddddddddddddddddddddddddd"); 
2

Hãy thử:

Guid user = new Guid("dddddddddddddddddddddddddddddddd"); 

Hope this helps!
N.S.

Các vấn đề liên quan