Question

Je suis en train de concevoir une bibliothèque SNMP. Le problème est dû à une fonction spéciale comme celle-ci,

*** GetTable (id chaîne)

Cette fonction peut renvoyer une variable [,] qui est parfois un tableau à deux dimensions, mais également une variable [,,] et des tableaux de plusieurs dimensions. Je pense donc qu’il n’est pas raisonnable de renvoyer un tableau fixe tel que Variable [,], Variable [,,] et ainsi de suite.

Mais que devrait alors retourner cette méthode? Comment le concevoir? Qu'en est-il d'une VariableCollection personnalisée?

Toute suggestion est la bienvenue.

Était-ce utile?

La solution

En règle générale, le renvoi d'un type personnalisé permet une plus grande flexibilité dans la représentation de vos données. Je préférerais également fournir vos propres méthodes pour accéder aux données de cette collection plutôt que d'exposer des tableaux multidimensionnels.

J'évite généralement d'utiliser moi-même des tableaux rectangulaires multidimensionnels. Dans de nombreux cas, les tableaux multidimensionnels en dents de scie sont plus pratiques, car vous pouvez soulever une tranche de manière isolée.

Autres conseils

Eh bien, vous pouvez revenir Array et laisser l'appelant vérifier le .Rank?

Bien sûr, renvoyer un tableau peut ne pas être la meilleure option en premier lieu (selon le scénario): Tableaux considérés comme plutôt nuisibles

Le renvoi d’un tableau multidimensionnel est une option risquée. Je suggérerais d'implémenter une collection personnalisée avec des méthodes pour obtenir des informations sur son état interne et des méthodes pour en extraire les données. Il est plus flexible et moins sujet aux erreurs lorsque le client appelle votre méthode.

Si vous créez une API publique, il est recommandé de renvoyer une collection fortement typée < T & Gt ;. Je créerais donc un objet personnalisé capable de récupérer les données requises que vous souhaitez renvoyer, puis d’utiliser la collection .net & Lt; T & Gt; pour le retourner.

J'espère que cela vous aidera.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top