2014-04-07 57 views
0

我想傳遞3個字符串和使用參數的日期時間對象。但是,無論發送什麼內容,值都始終爲空。Params對象[]值始終爲空

public ResponseObject Method(params object[] values) 
{ 
    // values is null 
    var var1 = Convert.ToString(values[0]); 
    var var2 = Convert.ToString(values[1]); 
    var var3 = Convert.ToString(values[2]); 
    var effectiveDate = Convert.ToDateTime(values[3]); 
} 

最後,我想創建一個可以具有可選參數的方法,但我不知道有多少參數將如何被髮送。有什麼建議麼?

編輯:

我是新來的工作原理,但我可以告訴代碼正在通過一個HTTP請求調用。該請求是沿着這些路線的東西:

http://localhost:20559/api/Method?var1=aaa&var2=bbb&var3=ccc&var4=2013-01-30 
+9

向我們展示如何調用該方法以及如何引用方法內的「值」。 – Lloyd

+4

_「但是,無論發送什麼內容,值總是空值。」_向我們展示一個值就足夠了。 –

+2

請顯示實際調用代碼或顯示不良行爲的最小示例。 – Codor

回答

2

如果你想public ResponseObject Method(object[] values)工作,要求應該是瓷磚這樣的:

../api/Method?values=aaa&values=bbb&values=ccc&values=2013-01-30 

這樣,只要你喜歡,你可以傳遞一個數組與儘可能多的項目。

但是,這不是我會做的。
只是去:

public ResponseObject Method(string var1, string var2, string var3, DateTime? var4 = null) 

如果沒有發送任何參數,它會只是
指定可爲空類型使參數爲可選。

+0

非常感謝你的輸入@David!這似乎解決了這個問題。我沒有意識到你可以擁有比列出的更多的參數,它仍然可以正常運行。這解決了我的問題。我仍然無法找到爲什麼params不起作用,但這會起作用。再次感謝! –