对Twilio方法的调用不明确

本文关键字:调用 不明确 方法 Twilio | 更新日期: 2023-09-27 17:59:30

我试图使用twilio发送短信,但当我使用代码时,我会收到以下错误:

错误1

错误11以下方法或属性之间的调用不明确:"Twilio。TwilioRestClient。SendMessage(字符串,string,string,string[],string)'和"Twilio。TwilioRestClient。SendMessage(字符串,字符串,字符串[],System.Action)'
C: ''开发''测试SMSVerify.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); 

对Twilio方法的调用不明确

问题是SendMessage有两个重载,一个重载采用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(...);