对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);
问题是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(...);