我正在尝试使用params传递3个字符串和一个datetime对象。但是,无论发送什么,值始终为空。
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
答案 0 :(得分: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)
如果没有发送任何参数,它只是 null 指定 nullable 类型会使参数成为可选参数。