Quelle est l'utilisation de ces opérateurs?Quand devons-nous utiliser des opérateurs implicites et explicites en C#?
5
A
Répondre
10
Fondamentalement lorsque vous souhaitez fournir des conversions entre types. LINQ to XML fournit de bons exemples ... Il y a un implicite conversion de chaîne à XName, de sorte que vous pouvez écrire:
XName name = "element";
mais il y a une explicite conversion de XAttribute
à int
(et bien d'autres types) afin vous devez inclure un casting dans votre code:
int value = (int) element.Attribute("age");
Réfléchissez bien avant de fournir des conversions implicites - ils sont rarement une bonne idée; LINQ to XML les utilise très bien, mais ils peuvent être déroutants. Même les conversions explicites définies par l'utilisateur peuvent surprendre le lecteur non averti.
3
Ils sont utilisés pour operator overloading. Voici un lien vers un MSDN article.
Questions connexes
- 1. Comment utiliser les distributions implicites et explicites?
- 2. Définition des lancements implicites et explicites pour les interfaces C#
- 3. Pourquoi ne puis-je pas définir des opérateurs implicites et explicites?
- 4. Cordes et ints, implicites et explicites
- 5. espaces de noms XML explicites et implicites
- 6. Comment foreach cast sans substitutions explicites/implicites?
- 7. Confondu avec les déclarations de modèle implicites et explicites
- 8. Quand dois-je utiliser des opérateurs bitshift/unaire, etc.?
- 9. priorité des opérateurs en C#
- 10. opérateurs arithmétiques prépondérants sur Int via des conversions implicites
- 11. Quand utiliser des primitives en Objective-C?
- 12. Opérateurs nouveaux et virtuels en C#
- 13. Quand utiliser avec (...) {...} en C#?
- 14. Dans C# 3.0, est-il possible d'ajouter des opérateurs implicites à la classe de chaînes?
- 15. opérateurs C++ et arguments
- 16. Priorité des opérateurs C# et VB.NET
- 17. SQLite3 et les rowid implicites
- 18. Surcharge des opérateurs ++ et - dans C#
- 19. Quand utiliser extern "C" en C++?
- 20. opérateurs binaires Ecraser en C#
- 21. Quand utiliser POJO et Quand utiliser SLSB
- 22. Conversions implicites C++
- 23. Quand utiliser les classes abstraites et quand utiliser les interfaces en C#
- 24. quand et pourquoi utiliser C# méthodes accesseurs
- 25. Quand utiliser conserver et quand utiliser copier
- 26. Comment définir des opérateurs de conversion implicites pour des enregistrements mutuellement dépendants?
- 27. C++/CLI Finaliseurs et opérateurs
- 28. Quand utiliser "using [alias =] class_or_namespace;" en C#?
- 29. En Objective-C, quand dois-je utiliser les méthodes de classe et quand devrais-je utiliser des méthodes d'instance?
- 30. Quand utiliser des fichiers mappés en mémoire?
Presque la plupart du temps, j'évite de les utiliser comme concepteur de bibliothèque (à moins que je ne sois sûr qu'ils ne seront pas mal utilisés et se plaindront). –