我正在處理某些事情,我需要返回一個枚舉和一個整數數組。我可以繞過整個問題,使用int而不是枚舉,並將它作爲數組的第一個元素添加,但枚舉確實有助於我的代碼易讀性。有什麼辦法可以同時返回嗎?C#返回一個枚舉和一個int數組
2
A
回答
11
有3種常見的解決方案。 哪一個是合適的,將取決於具體情況和個人喜好:
使用的
out
參數其中之一。這不需要任何新的類型,但不方便打電話。此外,它可能不會在語義上捕獲返回值之間的關係。public int[] MyMethod(out MyEnumType myEnum) { myEnum = ... int[] nums = ... return nums; }
使用
Tuple<,>
類型(.NET 4.0)。這隻需要從現有BCL類型構造一個封閉的通用類型,但呼叫者可能不喜歡封裝屬性具有無意義名稱的事實:Item1
和Item2
您也可以使用KeyValuePair<,>
類型或編寫自己的Pair<,>
類型來服務類似的目的。public Tuple<int[], MyEnumType> MyMethod() { int[] nums = ... MyEnumType myEnum = ... return Tuple.Create(nums, myEnum); }
編寫封裝int數組和枚舉的包裝類。更多的工作,但最好與來電者一起工作。
public class Wrapper { public int[] Nums { get { ... } } public MyEnumType MyEnum { get { ... } } } ... public Wrapper MyMethod() { Wrapper wrapper = ... return wrapper; }
+0
我想過使用包裝類。不知道C#有元組,所以我想這是要走的路。你知道是否有任何性能影響堅持int使用元組? – user472875 2011-01-13 00:28:25
相關問題
- 1. C++:返回一個枚舉
- 2. C++函數返回一個枚舉?
- 3. 返回一個枚舉
- 4. 鑄造從int到枚舉仍返回一個int
- 5. 創建一個枚舉或枚舉等價物,返回字符串(枚舉返回int)在.NET中
- 6. 許多枚舉在一個數組C#
- 7. (C#)枚舉不會返回INT
- 8. C#枚舉返回錯誤int值
- 9. 通過INT枚舉並返回一個字符串
- 10. Java枚舉返回Int
- 11. 搜索在枚舉一個字符串,並返回枚舉
- 12. 這個C代碼如何返回一個枚舉?
- 13. 返回一個int的引用與返回一個int在c + +函數?
- 14. 鑄造一個int到枚舉
- 15. 使用枚舉作爲一個int值
- 16. 枚舉類型設置爲一個int數組
- 17. 如何從C代碼返回一個2D int數組到C#?
- 18. C#返回一個數組數組
- 19. int數組以旗枚舉
- 20. 從函數獲取二維數組,返回一個int C++
- 21. Postgresql C函數需要一個FLOAT8 []並返回一個INT []?
- 22. 紅寶石:實現函數返回一個枚舉
- 23. VB.Net枚舉ToString返回一個未知的數字
- 24. JPA和一組枚舉值
- 25. 從C++函數返回一個數組
- 26. 從C函數返回一個數組
- 27. C#枚舉 - 猜旗給出一個int輸入
- 28. 是否有可能在C++中創建一個int +枚舉?
- 29. 如何編寫一個方法,將枚舉作爲泛型並返回int值
- 30. 從函數C返回枚舉#
答案給出了合理的選擇,但我不能不認爲有更大的設計問題在這裏解決。你能描述一下這個方法在做什麼,它返回一個可變的整數集合和一個枚舉類型? – 2011-01-13 00:47:38