我正在尝试使用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);
答案 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(...);