2009-01-12 23 views
2

Je suis en train de concevoir une bibliothèque SNMP. Le problème est dû à une fonction spéciale comme celui-ci,Comment concevoir cette méthode si elle retourne des tableaux multidimensionnels?

*** GetTable (id string)

Cette fonction peut retourner variable [,] qui est un tableau à deux dimensions parfois, mais aussi variable [,,] et des tableaux avec plus de dimensions. Donc je crois qu'il n'est pas raisonnable de renvoyer un tableau fixe tel que Variable [,], Variable [,,] et ainsi de suite.

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

Toute suggestion est la bienvenue.

Répondre

4

En règle générale, le retour d'un type personnalisé permet une plus grande flexibilité dans la représentation de votre Les données. Je préfère é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 des tableaux rectangulaires multidimensionnels moi-même. Dans de nombreux cas, les tableaux dentelés multidimensionnels sont plus pratiques car vous pouvez soulever une tranche isolément.

1

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

Bien sûr, le retour d'un tableau ne peut pas être la meilleure option en premier lieu (selon le scénario): Arrays considered somewhat harmful

1

Renvoyer un tableau multidimensionnel est un choix risqué. Je suggère d'implémenter une collection personnalisée avec des méthodes pour obtenir des informations sur son état interne et ses méthodes pour en extraire les données. Il est plus flexible et moins susceptible aux erreurs lorsque le client appelle votre méthode.

0

Si vous créez un Api public, il est recommandé de renvoyer une collection fortement typée < T>. Donc, je créer un objet personnalisé qui peut prendre les données requises que vous souhaitez retourner, puis utilisez la collection .net < T> pour le renvoyer.

Espérons que cela aide.