Il m'arrive de voir un code quelque chose comme ça. Quand et pourquoi avons-nous besoin de ce type de moulage de type dynamique pour les paramètres?coulée de type dynamique dans le paramètre dans C#
5
A
Répondre
5
Il peut être utilisé pour choisir dynamiquement une surcharge de function(...)
en fonction du type de param1
lors de l'exécution, par exemple:
public static void Something(string x)
{
Console.WriteLine("Hello");
}
public static void Something(int x)
{
Console.WriteLine("Goodbye");
}
public static void Main()
{
object x = "A String";
// This will choose string overload of Something() and output "Hello"
Something((dynamic)x);
x = 13;
// This will choose int overload of Something() and output "Goodbye"
Something((dynamic)x);
}
Ainsi, même si x
est une référence à object
, il décidera lors de l'exécution que surcharge de Something()
à appeler. Notez que s'il n'y a pas de surcharge appropriée, une exception sera levée:
// ...
x = 3.14;
// No overload of Something(double) exists, so this throws at runtime.
Something((dynamic)x);
Questions connexes
- 1. coulée de type dynamique
- 2. Coulée dynamique en C#
- 3. Type dynamique dans le paramètre de méthode
- 4. Comprendre le type coulée dans c
- 5. Sérialisation et coulée de type dynamique
- 6. coulée dynamique
- 7. Coulée dynamique dans Haxe
- 8. Type de coulée dans objectif-c
- 9. coulée de type dynamique d'objets en C# .net
- 10. Coulée dynamique dans ActionScript
- 11. Coulée dynamique et type de message
- 12. Paramètre de propriété de type primitive dynamique dans l'objectif C
- 13. erreur dans la coulée dynamique
- 14. coulée de type à un tableau dynamique
- 15. type coulée dans mysql
- 16. Coulée dynamique:
- 17. Coulée dynamique à l'interface
- 18. Type de coulée, problème de langage c
- 19. Java: coulée de type dynamique en utilisant les énumérations
- 20. Coulée d'héritage et de type Objective-C
- 21. coulée dynamique en Java
- 22. C# Type de coulée ou de conversion
- 23. Coulée de type explicite en C++
- 24. C++ classe type de coulée de vecteur
- 25. Polymorphisme C++ et type de coulée
- 26. Coulée dynamique en Java
- 27. coulée en sécurité dans C
- 28. passer le paramètre de type dynamique à un type générique
- 29. éviter la coulée de type dans le modèle correspondant à
- 30. Coulée d'un type de géographie dans PostGIS
Je voudrais en savoir plus. Généralement, si la fonction prend une variable dynamique, vous pouvez lancer, mais ce n'est pas nécessaire. – scottm
@scottm: C'est ce que je pensais initialement, puis je me suis souvenu que vous pouvez également l'utiliser pour choisir la surcharge correcte d'une méthode lors de l'exécution. –
@JamesMichaelHare Très petit cas d'utilisation. C'est le genre de chose que je reprocherais à un développeur précédent d'utiliser intentionnellement. – scottm