Як користуватися напрямними в C #?


Відповіді:



61

Просто коротке пояснення, чому вам потрібно викликати NewGuid на відміну від використання конструктора за замовчуванням ... У .NET усі структури (типи значень, такі як int, decimal, Guid, DateTime тощо) повинні мати конструктор без параметрів за замовчуванням, який ініціалізує всі поля до значення за замовчуванням. У випадку з Guid всі байти, що складають Guid, дорівнюють нулю. Замість того, щоб створювати особливий випадок для Guid або робити його класом, вони використовують метод NewGuid для створення нового "випадкового" Guid.


12

Це в System.Guid.

Щоб динамічно створювати GUID в коді:

Guid messageId = System.Guid.NewGuid();

Щоб побачити його значення:

string x = messageId.ToString();

Так, він повинен бути там ( msdn.microsoft.com/en-us/library/system.guid_members.aspx ), але я не можу ним скористатися. Чому?
Анте

"Я не можу ним користуватися" - що відбувається, коли ви намагаєтесь ним скористатися? Введіть його вручну (можливо, є проблема з вашим intellisense) і спробуйте скомпілювати - чи виникають помилки компіляції?
Метт Бріндлі,

Що ви маєте на увазі, коли говорите, що "не можете ним скористатися"? Якщо ви введете Guid x = System.Guid.NewGuid () та скомпілюєте, чи з'являється повідомлення про помилку? Або вам не подобається значення, яке ви отримуєте для х?
DOK

LOL так, що алгоритму Guid іноді потрібна нова перезавантаження. Зітхайте.
Джош

4

something = new Guid()дорівнює something = Guid.Empty.

Використовуйте Guid.NewGuid();замість цього


3
 Guid g1 = Guid.NewGuid();

 string s1;
 s1 = g1.ToString();
 Console.WriteLine("{0}",s1);
 Console.ReadKey();
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.