Question

Pourquoi le constructeur Guid sans paramètre génère-t-il un GUID vide plutôt que par défaut, comme avec Guid.NewGuid ()?

Existe-t-il un usage particulier d'un Guid vide?

Était-ce utile?

La solution

  

Pourquoi le constructeur Guid sans paramètre génère-t-il un GUID vide plutôt que par défaut, comme avec Guid.NewGuid ()?

Réponse courte: Parce que la langue / le moteur d'exécution n'a pas laissé le concepteur du type Guid définir un constructeur par défaut.

Ce n'est pas seulement conventionnel que la valeur d'un " construction par défaut " struct étant à zéro, vous ne pouvez tout simplement pas définir un constructeur par défaut pour une struct. Lorsque vous dites new Guid (), le moteur d'exécution vous donne un nouvel objet où tous les champs sont initialisés à leurs valeurs par défaut: http://msdn.microsoft.com/en-us/library/ah19swz4%28VS.71%29.aspx

Vous pouvez trouver certaines raisons ici: http: //www.yoda. arachsys.com/csharp/faq/#struct.constructors

Autres conseils

Ce comportement est cohérent avec le reste des types de valeur dans le framework .Net. Quand " nouveauté " un type de valeur, une valeur par défaut est utilisée. Ceci se trouve être la valeur par défaut pour Guid similaire à la valeur 0 par défaut de Int32.

Un guid vide est utile pour représenter l'absence d'un Guid. Puisque les types de valeur ne sont pas nullables (par défaut, oui, vous pouvez utiliser nullable).

Par exemple, j’utilise beaucoup les propriétés Guid as Id car elles sont très faciles à utiliser. Donc, une façon de voir si un objet a été persisté (c'est-à-dire quand il obtient son identifiant), je peux vérifier la valeur de id par rapport à un guid vide.

Je pense qu'il est classique que la valeur par défaut, d'une structure ou d'un type intégré, soit zéro.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top