C # bagaimana cara membuat nilai panduan?


Jawaban:




83

Ada dua cara

var guid = Guid.NewGuid();

atau

var guid = Guid.NewGuid().ToString();

keduanya menggunakan kelas Guid, yang pertama membuat Obyek Guid, yang kedua adalah string Guid.


47
@ Justin, Itu salah satu cara untuk melakukannya. var guid = Guid.NewGuid().ToString()hanya mengubahnya menjadi string.
Michael Meadows

@MichaelMeadows Ya itu benar, yang pertama membuat Obyek Guid baru, yang kedua membuat string.
Justin


34
var guid = new Guid();

Hei, ini 'valid', meski tidak terlalu berguna, Guid.

(panduan ini semua nol, jika Anda tidak tahu. Terkadang ini diperlukan untuk menunjukkan tidak ada panduan, dalam kasus di mana Anda tidak ingin menggunakan Panduan yang dapat dibatalkan)


Itu tidak membuat semua nol. Itu menciptakan Guid yang valid. Guid.Empty mengembalikan semua nol.
FlavourScape

8
@FlavorScape sebelum Anda mencoba, saya yakin Anda 50 rep (melalui karunia) Anda salah. Sepakat?

meh, saya sedang memikirkan Guid.NewGuid (). Saya benar-benar peduli untuk memverifikasi Guid baru ()
FlavourScape

11
Saya mengalahkan Anda satu per satu dengan solusi ini:var guid = new Guid(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, });
Jeppe Stig Nielsen

2
Saat Anda harus melewati panduan ke kode yang bukan milik Anda, yang tidak menerima panduan yang dapat dibatalkan.

26

Untuk membuat pemandu all-0 "kosong" seperti 00000000-0000-0000-0000-000000000000.

var makeAllZeroGuID = new System.Guid();

atau

var makeAllZeroGuID = System.Guid.Empty;

Untuk membuat panduan aktual dengan nilai unik, apa yang mungkin Anda inginkan.

var uniqueGuID = System.Guid.NewGuid(); 

21
System.Guid desiredGuid = System.Guid.NewGuid();

Ini tampaknya menjadi cara baru untuk melakukan ini, setidaknya pada 2012. Saya sepertinya tidak memiliki Guid.NewGuid () tersedia pada tahun 2015.
Dave Yarwood

2
@DaveYarwood Guid telah berada di bawah System namespace untuk waktu yang sangat lama, dan adalah apa yang orang lain rujuk dalam jawaban lain (kebetulan saja bahwa kelas baru sudah memiliki Penggunaan ditambahkan untuk System Namespace di normal template)
Skuld

18

Jika Anda ingin membuat Panduan "diinginkan", Anda dapat melakukannya

var tempGuid = Guid.Parse("<guidValue>");

di mana <guidValue>akan menjadi sesuatu seperti 1A3B944E-3632-467B-A53A-206305310BAE.


2

Ada juga ShortGuid - Kelas GUID yang lebih pendek dan ramah di C #. Ini tersedia sebagai Nuget . Informasi lebih lanjut di sini .

PM> Install-Package CSharpVitamins.ShortGuid

Pemakaian:

Guid guid = Guid.NewGuid();
ShortGuid sguid1 = guid; // implicitly cast the guid as a shortguid
Console.WriteLine(sguid1);
Console.WriteLine(sguid1.Guid);

Ini menghasilkan panduan baru, menggunakan panduan itu untuk membuat ShortGuid, dan menampilkan dua nilai yang setara di konsol. Hasil akan menjadi sesuatu di sepanjang baris:

ShortGuid: FEx1sZbSD0ugmgMAF_RGHw 
Guid:      b1754c14-d296-4b0f-a09a-030017f4461f

0

Jika Anda menggunakan ini di Reflection C #, Anda bisa mendapatkan panduan dari atribut properti sebagai berikut

var propertyAttributes= property.GetCustomAttributes();
foreach(var attribute in propertyAttributes)
{
  var myguid= Guid.Parse(attribute.Id.ToString());
}


-2
//Retrive your key ID on the bases of GUID 

declare @ID as uniqueidentifier

SET @ID=NEWID()
insert into Sector(Sector,CID)

Values ('Diry7',@ID)


select SECTORID from sector where CID=@ID

dapat digunakan alternatvity SCOPE.IDENTITY ()
sammer

28
C # terlihat jauh berbeda dari yang saya ingat.
Archibald
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.