81 votes

Les conventions de nommage: auxquelque chose et AsSomething - quand à utiliser?

Comme j'ai écrit certaines des méthodes d'extension pour mon entreprise, la logique des objets, j'en suis venu à la question sur la façon de nommer les méthodes de conversion. someObject.ToAnotherObject() irait très bien avec le largement utilisé object.ToString().

Cependant, LINQ pour exemple mélange des deux variantes et je ne peux pas trouver les différences entre eux. ToDictionary(), ToList(), AsParallel(), AsQueryable(), ...

Quelles sont les différences entre ces deux conventions de nommage et que dois-je savoir pour décider de l'utiliser pour mes cours?

90voto

dcastro Points 17978

ToDictionary et ToList avec le préfixe To parce qu'ils n'ont pas nécessairement de préserver l'identité structurelle de la collection d'origine ou de ses propriétés.

  • La transformation d'un List<T> en Dictionary<K, V> crée une collection avec une toute nouvelle structure.
  • La transformation d'un HashSet<T> en List<T> supprime le caractère unique de la propriété des ensembles.

Méthodes avec le préfixe As ne pas faire aucune de ces choses - ils simplement de fournir une autre vue de la collection d'origine. Ils l'enrichissent.

26voto

Jon Hanna Points 40291

Dans Linq, l' ToXXX méthodes de l'exécution de la requête et de créer un nouvel objet à partir des résultats, tandis que l' AsXXX méthodes de produire une nouvelle requête qui est différent d'une certaine façon. Il peut être le même objet, mais accessibles par une interface différente (AsEnumerable() t) ou il peut être un nouvel objet qui modifie la fonctionnalité (les autres méthodes de le faire, même si certains de vérifier pour voir si ils peuvent juste retour de l'objet donné, par exemple, AsQueryable() sera de retour source si elle implémente IQueryable<T> déjà, ou créer un nouveau EnumerableQuery<TElement> sinon).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X