2015-06-22 14 views
36

Il valore predefinito per int è 0, per stringa "" e per booleano è falso. Qualcuno può chiarire qual è il valore predefinito per guid?Qual è il valore predefinito per Guid?

+3

predefinito 'Guid' è' {00000000-0000-0000-0000-000000000000} '. In pratica sono zeri binari. – Szer

+0

domanda correlata [Come posso impostare un parametro su Guid.Empty in C#?] (// stackoverflow.com/q/5117970) –

+0

Questo sito Web può fornire guai vuoti http: // 00000000-0000-0000-0000-000000000000. com/ – Matthew

risposta

9

Il valore predefinito per un GUID è vuoto. (Ad esempio: 00000000-0000-0000-0000-000000000000)

Questo può essere richiamato utilizzando Guid.Empty() o new Guid()

Se si desidera un nuovo GUID, si utilizza Guid.NewGuid()

+0

Guid.empty ha fatto il trucco grazie mille @dotctor – anchor

+3

@anchor Ho notato che non hai mai accettato alcuna risposta alle tue domande. [Qui - nelle FAQ di StackExchange] (http://meta.stackexchange.com/q/5234) puoi leggere come puoi accettare una risposta e perché dovresti farlo. – Genhis

17

È possibile utilizzare Guid.Empty. Si tratta di una read-only instance della struttura GUID con il valore della 00000000-0000-0000-0000-000000000000

è anche possibile utilizzare questi invece

var g = new Guid(); 
var g = default(Guid); 

fate attenzione a non usare Guid.NewGuid() perché sarà generare un nuovo GUID.

utilizzare una delle opzioni sopra la quale tu e il tuo team pensate che sia più leggibile e attenervisi. Non combinare diverse opzioni attraverso il codice. Credo che sia il migliore dal new Guid() potrebbe farci pensare che sta generando un nuovo guid e alcuni potrebbero non sapere quale sia il valore di default(Guid).

47

È possibile utilizzare questi metodi per ottenere un guid vuoto. Il risultato sarà un guid con tutte le sue cifre che sono 0 - "00000000-0000-0000-0000-000000000000".

new Guid() 

default(Guid) 

Guid.Empty 
2

Per estendere le risposte di cui sopra, non è possibile utilizzare il valore predefinito Guid con Guid.Empty come optional argument nel metodo, indicizzatore o una definizione delegato, perché vi darà la compilazione errore di tempo. Utilizzare invece default(Guid) o new Guid().