Bagaimana cara menggunakan Panduan di C #?

89

Kode ini:

Something = new Guid() 

kembali:

00000000-0000-0000-0000-000000000000

sepanjang waktu dan saya tidak tahu mengapa? Jadi kenapa?

Sokongan
sumber
Kemungkinan duplikat dari C # cara membuat nilai Guid?
UuDdLrLrSs

Jawaban:

148

Kamu harus menggunakan Guid.NewGuid()

Will Dean
sumber
1
@Ante: Jika Anda memiliki kelas Guid maka Anda memiliki metode NewGuid.
Guffa
61

Hanya penjelasan singkat mengapa Anda perlu memanggil NewGuid sebagai lawan menggunakan konstruktor default ... Dalam .NET semua struktur (tipe nilai seperti int, desimal, Guid, DateTime, dll) harus memiliki konstruktor tanpa parameter default yang menginisialisasi semua bidang ke nilai defaultnya. Dalam kasus Guid, byte yang menyusun Panduan semuanya nol. Daripada membuat kasus khusus untuk Guid atau menjadikannya kelas, mereka menggunakan metode NewGuid untuk menghasilkan Guid "acak" baru.

Josh
sumber
12

Ini masuk System.Guid.

Untuk membuat GUID dalam kode secara dinamis:

Guid messageId = System.Guid.NewGuid();

Untuk melihat nilainya:

string x = messageId.ToString();
DOK
sumber
Ya, seharusnya ada di sana ( msdn.microsoft.com/en-us/library/system.guid_members.aspx ) tetapi saya tidak dapat menggunakannya. Mengapa?
Ante
"Saya tidak dapat menggunakannya" - apa yang terjadi jika Anda mencoba menggunakannya? Ketik secara manual (mungkin ada masalah dengan inteligensi Anda) dan coba kompilasi - apakah Anda mendapatkan kesalahan kompilasi?
Matt Brindley
Apa yang Anda maksud ketika Anda mengatakan Anda "tidak dapat menggunakannya"? Jika Anda mengetik Guid x = System.Guid.NewGuid () dan mengkompilasi, apakah Anda mendapatkan error? Atau apakah Anda tidak menyukai nilai yang Anda dapatkan untuk x?
DOK
LOL ya, algoritme Panduan terkadang perlu di-boot ulang. Mendesah.
Josh
4

something = new Guid()sama something = Guid.Empty.

Gunakan Guid.NewGuid();sebagai gantinya

Will Yu
sumber
3
 Guid g1 = Guid.NewGuid();

 string s1;
 s1 = g1.ToString();
 Console.WriteLine("{0}",s1);
 Console.ReadKey();
Leo
sumber