2009-01-12 49 views
2

我現在正在設計一個SNMP庫。問題是由這樣的特殊功能引起的,如何設計此方法,如果它返回多維數組?

*** GetTable(字符串ID)

這個函數可以返回變量[,]這是一個二維陣列有時,也可變[,,]和更多維度的數組。所以我認爲返回Variable [,],Variable [,,]等固定數組是不合理的。

但是,該方法返回什麼呢?如何設計它?一個自定義的VariableCollection呢?

任何建議是值得歡迎的。

回答

4

作爲一般規則,在表示返回自定義類型允許更大的靈活性,您的數據。我還希望提供您自己的方法來訪問此集合中的數據,而不是暴露多維數組。

我一般都避免使用多維矩形陣列。在許多情況下,多維鋸齒陣列更方便,因爲您可以單獨提升切片。

1

那麼,你可以返回Array並讓來電者檢查.Rank

當然,返回一個數組可能不是擺在首位的最佳選擇(具體取決於該方案):Arrays considered somewhat harmful

1

返回多維數組是一個有風險的選擇。我建議實現一個自定義集合以及獲取有關其內部狀態和方法的信息以從中獲取數據。當客戶調用您的方法時,它更靈活,不易出錯。

0

如果創建公共Api,建議返回強類型集合< T>。所以我會創建一個自定義對象,它可以獲取您想要返回的所需數據,然後使用.net集合< T>將其返回。

希望這會有所幫助。