Một lĩnh vực của struct của chúng tôi là loại Guid. Làm thế nào để tạo ra một giá trị hợp lệ cho nó?
Một lĩnh vực của struct của chúng tôi là loại Guid. Làm thế nào để tạo ra một giá trị hợp lệ cho nó?
Câu trả lời:
Guid id = Guid.NewGuid();
Guid.NewGuid()
tạo ra một hướng dẫn ngẫu nhiên mới.
Có hai cách
var guid = Guid.NewGuid();
hoặc là
var guid = Guid.NewGuid().ToString();
cả hai đều sử dụng lớp Guid, lớp đầu tiên tạo đối tượng Guid, chuỗi thứ hai là chuỗi Guid.
var guid = Guid.NewGuid().ToString()
chỉ cần biến nó thành một chuỗi.
Guid.NewGuid () sẽ tạo một
var guid = new Guid();
Này, nó là "hợp lệ", mặc dù không hữu ích lắm, Guid.
(hướng dẫn là tất cả số không, nếu bạn không biết. Đôi khi, điều này là cần thiết để chỉ ra không có hướng dẫn, trong trường hợp bạn không muốn sử dụng Hướng dẫn không thể hủy bỏ)
var guid = new Guid(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, });
Để làm cho một hướng dẫn "0" trống rỗng như thế nào 00000000-0000-0000-0000-000000000000
.
var makeAllZeroGuID = new System.Guid();
hoặc là
var makeAllZeroGuID = System.Guid.Empty;
Để thực hiện một hướng dẫn thực tế với một giá trị duy nhất, những gì bạn có thể muốn.
var uniqueGuID = System.Guid.NewGuid();
System.Guid desiredGuid = System.Guid.NewGuid();
Ngoài ra còn có ShortGuid - Một lớp GUID ngắn hơn và thân thiện với url trong C #. Nó có sẵn như là một Nuget . Thêm thông tin ở đây .
PM> Install-Package CSharpVitamins.ShortGuid
Sử dụng:
Guid guid = Guid.NewGuid();
ShortGuid sguid1 = guid; // implicitly cast the guid as a shortguid
Console.WriteLine(sguid1);
Console.WriteLine(sguid1.Guid);
Điều này tạo ra một hướng dẫn mới, sử dụng hướng dẫn đó để tạo ShortGuid và hiển thị hai giá trị tương đương trong bảng điều khiển. Kết quả sẽ là một cái gì đó dọc theo dòng:
ShortGuid: FEx1sZbSD0ugmgMAF_RGHw
Guid: b1754c14-d296-4b0f-a09a-030017f4461f
Nếu bạn đang sử dụng điều này trong Reflection C #, bạn có thể lấy hướng dẫn từ thuộc tính property như sau
var propertyAttributes= property.GetCustomAttributes();
foreach(var attribute in propertyAttributes)
{
var myguid= Guid.Parse(attribute.Id.ToString());
}