如何跳过库函​​数中的某些可选参数

B-S*_*art 3 c# arguments function twilio

我一直在研究Winforms C#应用程序,我正在使用Twilio来实现SMS功能.Twilio有一个名为'ListSmsMessages'的函数,如下所示:

public virtual SmsMessageResult ListSmsMessages(
    string to, string from, DateTime? dateSent, int? pageNumber, int? count);
Run Code Online (Sandbox Code Playgroud)

文档说这些中的每一个都是可选的.我可以通过填写任何字段client.ListSmsMessages();或填写所有字段来成功调用该函数,client.ListSMSMessages("to","from", date, 1,10);但我无法选择我想要的参数.如client.ListSMSMessages("to",date);只.

我已经做了一些研究,发现C#4.0应该可以做类似的事情client.ListSMSMessages(to:"to",datesent: date);但是这不起作用.

我想知道是否因为我using Twilio;不是在编写我自己的类,如果这会影响我应该如何调用可选参数?或者他们的文档可能不正确,说明它们是可选的.

Mar*_* N. 8

那些是可以为空的参数,而不是可选的.如果您想跳过其中一些,请传递null为值.

client.ListSMSMessages("to", null, date, null, null);
Run Code Online (Sandbox Code Playgroud)

更多细节:

如果你想要可选的args,那么在lib中的那个上创建你自己的函数(建立在Robert的答案:) :):

public SmsMessageResult MyListSmsMessages(
    string to = null, string from = null, DateTime? dateSent = null, int? pageNumber = null, int? count = null)
{
  return client.ListSMSMessages(to, from, date, pageNumber, count); 
}
Run Code Online (Sandbox Code Playgroud)