L'exemple fictif ici. Supposons que j'ai créé une classe nommée IODevice. Cette classe implémente déjà une structure qui me permet de l'utiliser de la manière suivante:Comment créer une propriété dynamique significative?
IODevice dio = new IODevice();
try
{
dio.Pin["IsBirdInCageSensor"].Set();
dio.Pin["KillBird"].Get();
//dio.Pin["NonExistant"].Set(); //exception
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
Pins ici sont une série de lignes d'entrées-sorties dans une boîte IO numérique qui peut aller haut (1) ou faible (0).
Je voudrais utiliser dynamique pour appeler de la manière suivante:
dio.Pins.KillBird.Get();
Ma classe IO Device ressemble à ce moment, et comme vous le constaterez, je n'ai pas beaucoup avancé sur la façon de implémenter l'interface dynamique, à l'exception de l'utilisation du mot clé dynamique. La deuxième question est: quels sont les inconvénients de l'utilisation d'un tel design? (en dehors de l'absence de vérification de type difficile - que je n'ai pas de toute façon)
@itowlson: Bonne suggestion, et +1 pour mentionner ExpandoObject. @Padu: Checkout l'exemple C# ici [http://msdn.microsoft.com/en-us/library/system.dynamic.expandoobject (VS.100) .aspx], pourrait aider. –
@KMan: le lien ne fonctionne pas ici –
Padu: il y a un étranger] à la fin du lien de KMan. Efface juste ça. Mais je pense qu'il va au même endroit que le lien ExpandoObject dans le corps de la réponse. – itowlson