C # ¿cómo crear un valor Guid?


Respuestas:




83

Hay dos maneras

var guid = Guid.NewGuid();

o

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

ambos usan la clase Guid, el primero crea un Objeto Guid, el segundo una cadena Guid.


47
@Justin, esa es una forma de hacerlo. var guid = Guid.NewGuid().ToString()solo lo convierte en una cuerda.
Michael Meadows

@MichaelMeadows Sí, eso es correcto, el primero crea un nuevo objeto Guid, el segundo crea una cadena.
Justin


34
var guid = new Guid();

Oye, es un 'válido', aunque no muy útil, Guid.

(el guid es todo ceros, si no lo sabe. A veces esto es necesario para indicar que no hay guid, en los casos en que no desee usar un Guid que pueda contener nulos)


Eso no crea todos los ceros. Crea un Guid válido. Guid.Empty devuelve todos los ceros.
FlavorScape

8
@FlavorScape antes de intentarlo, apuesto a que 50 repeticiones (a través de la recompensa) está equivocado. ¿Acuerdo?

meh, estaba pensando en Guid.NewGuid (). Realmente me importa verificar el nuevo Guid ()
FlavorScape

11
Te gané por uno con esta solución: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
Cuando debe pasar un guid al código que no posee que no acepta un guid anulable.

26

To hace un guid de "0" como "vacío" 00000000-0000-0000-0000-000000000000.

var makeAllZeroGuID = new System.Guid();

o

var makeAllZeroGuID = System.Guid.Empty;

Para hacer un guid real con un valor único, lo que probablemente quieras.

var uniqueGuID = System.Guid.NewGuid(); 

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

Esta parece ser la nueva forma de hacerlo, a partir de al menos 2012. Parece que no tengo Guid.NewGuid () disponible en 2015.
Dave Yarwood

2
@DaveYarwood Guid ha estado bajo el espacio de nombres del Sistema durante mucho tiempo, y es a lo que todos los demás se refieren en las otras respuestas (simplemente resulta que una nueva clase ya tiene el Uso agregado para el Espacio de Nombres del Sistema en el plantilla normal)
Skuld

18

Si desea crear una guía "deseada", puede hacerlo

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

¿Dónde <guidValue>sería algo así 1A3B944E-3632-467B-A53A-206305310BAE?


2

También hay ShortGuid: una clase GUID más corta y fácil de usar en C #. Está disponible como Nuget . Más información aquí .

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);

Esto produce un nuevo guid, lo utiliza para crear un ShortGuid y muestra los dos valores equivalentes en la consola. Los resultados serían algo similar a:

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

0

Si está usando esto en Reflection C #, puede obtener el guid del atributo de propiedad de la siguiente manera

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

se puede usar como alternativa SCOPE.IDENTITY ()
sammer

28
C # se ve muy diferente de lo que recuerdo.
Archibald
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.