Domanda

Ora sto progettando una libreria SNMP. Il problema è causato da una funzione speciale come questa,

*** GetTable (id stringa)

Questa funzione può restituire Variable [,] che a volte è un array bidimensionale, ma anche Variable [,,] e array con più dimensioni. Quindi credo che non sia ragionevole restituire array fissi come Variable [,], Variable [,,] e così via.

Ma cosa dovrebbe restituire questo metodo allora? Come progettarlo? Che dire di un VariableCollection personalizzato?

Qualsiasi suggerimento è il benvenuto.

È stato utile?

Soluzione

Come regola generale, la restituzione di un tipo personalizzato consente una maggiore flessibilità nella rappresentazione dei dati. Preferirei anche fornire i tuoi metodi per accedere ai dati in questa raccolta, piuttosto che esporre array multidimensionali.

In genere evito di utilizzare personalmente matrici rettangolari multidimensionali. In molti casi, le matrici frastagliate multidimensionali sono più convenienti in quanto è possibile sollevare una sezione in isolamento.

Altri suggerimenti

Bene, potresti restituire Array e lasciare che il chiamante controlli .Rank?

Naturalmente, in primo luogo, la restituzione di un array potrebbe non essere l'opzione migliore (a seconda dello scenario): Array considerati un po 'dannosi

Restituire un array multidimensionale è una scelta rischiosa. Suggerirei di implementare una raccolta personalizzata insieme a metodi per ottenere informazioni sul suo stato interno e metodi per ottenere i dati da esso. È più flessibile e meno suscettibile agli errori quando il client chiama il tuo metodo.

Se si crea un'API pubblica, si consiglia di restituire una raccolta fortemente tipizzata < T & Gt ;. Quindi creerei un oggetto personalizzato che può prendere i dati richiesti che vuoi restituire e quindi usare la raccolta .net & Lt; T & Gt; per restituirlo.

Spero che questo aiuti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top