Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.07.2011, 10:08   #1
Saori
Пользователь
 
Аватар для Saori
 
Регистрация: 05.07.2011
Сообщений: 12
По умолчанию Структура System.Guid

Добрый день!
Расскажите, кто знает, что из себя представляет структура System.Guid, в чем ее достоинства и для чего она чаще всего используется?
Every moment takes me to paradise
Saori вне форума Ответить с цитированием
Старый 05.07.2011, 11:17   #2
Guy
Форумчанин
 
Регистрация: 15.12.2010
Сообщений: 398
По умолчанию

Код:
A GUID is a 128-bit integer (16 bytes) that can be used across all computers and networks wherever a unique identifier is required. Such an identifier has a very low probability of being duplicated.
Генерирует строчку GUID которая имеет Наименьшую вероятность что надётся её дубликат. Да и вариантов 36^32 степени хватит чтобы идетифицировать значения данных практически в любой не астрономической задаче
Guy вне форума Ответить с цитированием
Старый 05.07.2011, 12:10   #3
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Guy все правильно написал, но добавлю немного: допустим у тебя есть некий список элементов класса MyClass:
Код:
class MyClass
{
public string Name;
public string SomeData;
}
Т.е. он содержит 2 поля: имя и какую-то информацию. Но допустим у тебя поле Name не уникальное и одно и то же имя может быть у нескольких объектов. Как разобрать их? Вот тут и используем Guid:
Код:
class MyClass
{
public string Name;
public string SomeData;
public Guid Id = Guid.NewGuid();
}
Теперь все операции можно проводить по полю Id. Конечно вариантов использования Guid очень много, но описал самый простой.
Hollander вне форума Ответить с цитированием
Старый 05.07.2011, 12:16   #4
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Небольшое уточнение:
Код:
using System;

class MyClass
{
      static void Main()
      {
          Guid g = Guid.NewGuid();
          Console.WriteLine("GUID: {0}",g);
          Console.ReadLine();
      }
}
_-Re@l-_ вне форума Ответить с цитированием
Старый 05.07.2011, 12:31   #5
Saori
Пользователь
 
Аватар для Saori
 
Регистрация: 05.07.2011
Сообщений: 12
По умолчанию

Большое спасибо за ответы, теперь более менее ясно
Every moment takes me to paradise
Saori вне форума Ответить с цитированием
Старый 05.07.2011, 12:47   #6
Saori
Пользователь
 
Аватар для Saori
 
Регистрация: 05.07.2011
Сообщений: 12
По умолчанию

ммм... ну допустим, у меня есть класс, в котором хранятся имя, фамилия и этот уникальный ID... каким образом определяется, что этого ID нет где-то в другом месте, в другом компе, в другой сети? О.о
простите, за глупый вопрос ^_^""
Every moment takes me to paradise
Saori вне форума Ответить с цитированием
Старый 05.07.2011, 13:00   #7
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Сообщение от Saori Посмотреть сообщение
.. каким образом определяется, что этого ID нет где-то в другом месте, в другом компе, в другой сети? О.о
простите, за глупый вопрос ^_^""
Вообще-то никак, но вероятность возникновения такого события крайне мала. Считайте что это псевдослучайное число из очень большого диапазона возможных чисел. Какова вероятность того, что встретятся подряд два одинаковых номера из чисел в диапазоне от 0 до 2 в 128 степени?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 05.07.2011, 13:22   #8
Saori
Пользователь
 
Аватар для Saori
 
Регистрация: 05.07.2011
Сообщений: 12
По умолчанию

ну все равно ведь, чтобы сгенерировать число, которое чуть ли не 100% больше нигде не встретится, нужно от чего-то отталкиваться
Every moment takes me to paradise
Saori вне форума Ответить с цитированием
Старый 05.07.2011, 13:24   #9
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

И ещё не забывайте, что GUID основывается на аппаратной части компьютера.
_-Re@l-_ вне форума Ответить с цитированием
Старый 05.07.2011, 13:56   #10
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Сообщение от Saori Посмотреть сообщение
ну все равно ведь, чтобы сгенерировать число, которое чуть ли не 100% больше нигде не встретится, нужно от чего-то отталкиваться
Теория вероятности возникла в средние века - трехсот лет исследований Вам не достаточно? В компьютере это таймер, аппаратные данные и пятна на Солнце.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 05.07.2011 в 13:58.
Utkin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по GUID mike_tihomirov Общие вопросы C/C++ 1 12.03.2010 18:03
System.Net и System.Net.Sockets Adwenturer Общие вопросы .NET 4 08.02.2010 22:08
GUID Excel'Я пасечник Microsoft Office Excel 4 21.12.2009 20:28
system lennon Безопасность, Шифрование 1 31.10.2009 18:31
System V AhmetJan Linux (Ubuntu, Debian, Red Hat, CentOS, Mint) 7 01.03.2009 13:09