C # como criar um valor Guid?


Respostas:




83

Existem duas maneiras

var guid = Guid.NewGuid();

ou

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

ambos usam a classe Guid; o primeiro cria um objeto Guid; o segundo, uma sequência Guid.


47
@ Justin, é uma maneira de fazer isso. var guid = Guid.NewGuid().ToString()apenas o transforma em uma string.
Michael Meadows

@MichaelMeadows Sim, está correto, o primeiro cria um novo Objeto Guid, o segundo cria uma string.
Justin Justin


34
var guid = new Guid();

Ei, é um Guid 'válido', embora não seja muito útil.

(o guia é todo zeros, se você não souber. Às vezes isso é necessário para indicar nenhum guia, nos casos em que você não deseja usar um guia nulo)


Isso não cria todos os zeros. Ele cria um Guid válido. Guid.Empty retorna todos os zeros.
FlavorScape

8
@FlavorScape antes de tentar, aposto que 50 rep (via recompensa) você está errado. Combinado?

meh, eu estava pensando em Guid.NewGuid (). Realmente me importo em verificar o novo Guid ()
FlavorScape

11
Eu venci você por um com esta solução: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
Quando você deve passar um guia para codificar, não é seu proprietário que não aceita um guia nulo.

26

Para criar um guid all-0 "vazio" 00000000-0000-0000-0000-000000000000.

var makeAllZeroGuID = new System.Guid();

ou

var makeAllZeroGuID = System.Guid.Empty;

Para criar um guia real com um valor único, o que você provavelmente deseja.

var uniqueGuID = System.Guid.NewGuid(); 

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

Esta parece ser a nova maneira de fazer isso, a partir de, pelo menos, 2012. Eu não parecem ter Guid.NewGuid () disponível em 2015.
Dave Yarwood

2
O @DaveYarwood Guid está no espaço de nomes System há muito tempo e é o que todos os outros estão se referindo nas outras respostas (acontece que uma nova classe já tem o Using adicionado no espaço de nomes do sistema no diretório (normal template))
Skuld

18

Se você deseja criar um Guid "desejado", pode fazer

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

onde <guidValue>seria algo parecido 1A3B944E-3632-467B-A53A-206305310BAE.


2

Há também ShortGuid - uma classe GUID mais curta e amigável ao URL em C #. Está disponível como um Nuget . Mais informações aqui .

PM> Install-Package CSharpVitamins.ShortGuid

Uso:

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

Isso produz um novo guia, usa esse guia para criar um ShortGuid e exibe os dois valores equivalentes no console. Os resultados seriam algo como:

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

0

Se você estiver usando isso no Reflection C #, poderá obter o guid do atributo de propriedade da seguinte maneira

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

pode ser usado alternatvity SCOPE.IDENTITY ()
sammer

28
C # parece muito diferente do que eu me lembro.
Archibald
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.