C # 'da Kılavuzlar nasıl kullanılır?


89

Bu Kod:

Something = new Guid() 

geri dönüyor:

00000000-0000-0000-0000-000000000000

her zaman ve nedenini söyleyemiyorum? Peki neden?


Olası C #
UuDdLrLrSs

Yanıtlar:



61

Varsayılan yapıcıyı kullanmak yerine neden NewGuid'i çağırmanız gerektiğine dair hızlı bir açıklama ... .NET'te tüm yapılar (int, decimal, Guid, DateTime, vb. Gibi değer türleri) tümünü başlatan varsayılan parametresiz bir kurucuya sahip olmalıdır. alanları varsayılan değerlerine. Guid durumunda, Guid'i oluşturan baytların tümü sıfırdır. Guid için özel bir durum oluşturmak veya onu bir sınıf yapmak yerine, yeni bir "rastgele" Kılavuz oluşturmak için NewGuid yöntemini kullanırlar.


12

İçinde System.Guid.

Kodda dinamik olarak bir GUID oluşturmak için:

Guid messageId = System.Guid.NewGuid();

Değerini görmek için:

string x = messageId.ToString();

Evet, orada olmalı ( msdn.microsoft.com/en-us/library/system.guid_members.aspx ) ama kullanamıyorum. Neden?
Ante

"Kullanamıyorum" - kullanmaya çalıştığınızda ne olur? El ile yazın (belki de intellisense ile ilgili bir sorun vardır) ve derlemeye çalışın - derleme hataları mı alıyorsunuz?
Matt Brindley

"Kullanamazsın" derken ne demek istiyorsun? Guid x = System.Guid.NewGuid () yazıp derlerseniz, bir hata alır mısınız? Yoksa x için aldığınız değeri beğenmediniz mi?
DOK

LOL evet, Guid algoritmasının bazen yeni bir yeniden başlatmaya ihtiyacı vardır. İç çekmek.
Josh

4

something = new Guid()eşittir something = Guid.Empty.

Guid.NewGuid();Bunun yerine kullanın


3
 Guid g1 = Guid.NewGuid();

 string s1;
 s1 = g1.ToString();
 Console.WriteLine("{0}",s1);
 Console.ReadKey();
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.