Quelles sont les différences entre System.Dynamic.ExpandoObject
, System.Dynamic.DynamicObject
et dynamic
?
Dans quelles situations avez-vous l'utilisation de ces types?
Quelles sont les différences entre System.Dynamic.ExpandoObject
, System.Dynamic.DynamicObject
et dynamic
?
Dans quelles situations avez-vous l'utilisation de ces types?
L' dynamic
mot-clé est utilisé pour déclarer des variables qui devraient être tardive.
Si vous souhaitez utiliser la liaison tardive, pour tout réel ou imaginaire, de type, vous devez utiliser l' dynamic
mot-clé et le compilateur fait le reste.
Lorsque vous utilisez l' dynamic
mot-clé à interagir avec une instance normale, le DLR effectue tardive des appels à l'instance de méthodes normales.
L' IDynamicMetaObjectProvider
interface permet à une catégorie de prendre le contrôle de sa tardive comportement.
Lorsque vous utilisez l' dynamic
mot-clé pour interagir avec un IDynamicMetaObjectProvider
mise en œuvre, le DLR appelle l' IDynamicMetaObjectProvider
méthodes et l'objet lui-même qui décide quoi faire.
L' ExpandoObject
et DynamicObject
des classes sont des implémentations de IDynamicMetaObjectProvider
.
ExpandoObject
est une classe simple qui vous permet d'ajouter des membres à une instance et les utiliser dynamic
allié.DynamicObject
est un plus avancé de mise en œuvre qui peut être hérité de fournir facilement un comportement personnalisé.
dynamic
est une déclaration de type. I. e. dynamic x
- dire que la variable x
type dynamic
.
DynamicObject
est un type qui le rend facile à mettre en oeuvre IDynamicMetaObjectProvider
et donc de remplacer la liaison spécifique de comportement pour le type.
ExpandoObject
est un type qui agit comme un sac de propriété. I. e. vous pouvez ajouter des propriétés, des méthodes et ainsi de suite à la dynamique des instances de ce type à l'exécution.
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.