2013-05-13 58 views
0

所以,我有以下的代碼如何編寫方法將由裁判接受的參數變量數

int[] GetIndexes(string columns) 
{ 
    ... 
} 

var indexes = GetIndexes("Code|Name|Description"); 
var codeIndex = indexes[0]; 
var nameIndex = indexes[1]; 
var descIndex = indexes[2]; 

最好是在未來的方式來使用它:

GetIndexes("Code|Name|Description", ref codeIndex, ref nameIndex, ref descIndex); 

有你有關它的任何建議?

+1

你看到http://stackoverflow.com/問題/ 1776020/interesting-params-ref-feature-any-workarounds和http://stackoverflow.com/questions/3176884/can-params-be-used-to-pass-variables-by-ref-via-一個功能,使用收益? – 2013-05-13 12:17:31

+2

繼續使用返回類型的版本。 IMO是最乾淨的解決方案。 – 2013-05-13 12:17:47

回答

0

您可以使用自己的類獲取索引。怎麼看:

class IndexReceiver 
{ 
    public string Name { get; set; } 
    public int Index { get; set; } 

    public static implicit operator IndexReceiver(string name) 
    { 
     return new IndexReceiver() { Name = name }; 
    } 
} 

然後,定義你的方法是這樣的:

​​3210

使用新的方法是這樣的:

IndexReceiver code = "Code", index = "Index", desc = "desc" 
GetIndexes(code, index, desc); 
+0

而不是'explicit',這應該是'implicit'。 – Kai 2013-05-13 12:30:34

+0

是的,謝謝.... – AgentFire 2013-05-13 12:59:20

相關問題