对Twilio方法的调用含糊不清

时间:2014-04-22 09:58:35

标签: c# asp.net twilio

我正在尝试使用twilio发送短信但是当我使用代码时,我收到以下错误:

错误1

  

错误11以下方法或属性之间的调用不明确:   ' Twilio.TwilioRestClient.SendMessage(字符串,字符串,字符串,字符串[],字符串)'   和   ' Twilio.TwilioRestClient.SendMessage(string,string,string,string [],System.Action)'
  C:\发展\ TestSMSVerify.aspx.cs

错误2

Cannot assign void to an implicitly-typed local variable

有谁知道如何解决这个问题?

代码是

// Find your Account Sid and Auth Token at twilio.com/user/account 
string AccountSid = "MYSID";
string AuthToken = "MYAUTHTOKEN";
var twilio = new TwilioRestClient(AccountSid, AuthToken);
var message = twilio.SendMessage("+441618504425", "07914164512", "code is 123456", null, null);
Console.WriteLine(message.Sid); 

1 个答案:

答案 0 :(得分:3)

问题是SendMessage有2个重载,其中一个采用string类型作为最后一个参数,另一个采用Action<Twilio.Message>。您正在传递null,这对于这两种类型都是可接受的,但是,会使编译器感到困惑,因为它无法确定您希望它调用哪种方法。

例如,如果您将空字符串作为最后一个参数传递,例如

 twilio.SendMessage("+441618504425", "07914164512", "code is 123456", null, "");

然后,编译器会知道您希望最后使用string参数进行重载,而不是Action<Twilio.Message>。或者,如果您传递了一个空的Action<Twilio.Message>参数,例如

 twilio.SendMessage("+441618504425", "07914164512", "code is 123456", null, (msg) => {});

然后它会知道你想要一个Action<Twilio.Message>参数而不是string的电话。

最后,我相信这个错误

  

无法将void分配给隐式类型的局部变量

是因为SendMessage实际上没有返回任何内容。要修复,只需更改

var message = twilio.SendMessage(...);

twilio.SendMessage(...);