2


0

私は今SNMPライブラリを設計しています。 問題はこのような特別な機能によって引き起こされます、

  • GetTable(文字列ID)

この関数は時々2次元配列であるVariable [、]を返すかもしれませんが、Variable [,,]とそれ以上の次元を持つ配列も返します。 したがって、Variable [、]、Variable [,,]などの固定配列を返すことは合理的ではないと考えています。

しかし、このメソッドは何を返すべきでしょうか? それを設計する方法? カスタムVariableCollectionについてはどうですか?

任意の提案は大歓迎です。

4 Answer


4


一般的な規則として、カスタムタイプを返すことで、データの表現においてより大きな柔軟性が得られます。 多次元配列を公開するよりも、このコレクション内のデータにアクセスするための独自の方法を提供することをお勧めします。

私は一般的に私自身で多次元長方形配列を使うのを避けています。 多くの場合、スライスを別々に持ち上げることができるため、多次元ギザギザ配列がより便利です。


1


さて、あなたは Array`を返し、呼び出し元に .Rank`をチェックさせることができますか?

もちろん、(シナリオによっては)配列を返すのが最善の選択肢ではないかもしれません:http://blogs.msdn.com/ericlippert/archive/2008/09/22/arrays-considered-somewhat-harmful .aspx [配列はやや有害だと考えられています]


1


多次元配列を返すことは危険な選択です。 内部状態に関する情報を取得するためのメソッドと、それからデータを取得するためのメソッドと一緒にカスタムコレクションを実装することをお勧めします。 クライアントが自分のメソッドを呼び出すときに、より柔軟でエラーの影響を受けにくくなります。


0


公開APIを作成する場合は、厳密に型指定されたコレクション<T>を返すことをお勧めします。 それで私はあなたが返したい必要なデータを受け取ることができるカスタムオブジェクトを作成し、それを返すために.netコレクション<T>を使います。

お役に立てれば。