关于委托的一个错误,我已经检查了参数,还是提示错

will_stier 2016-07-14 10:43:11


delegate void AddTalkMessageDelegate(string message);
/// <summary>
/// 添加聊天记录
/// </summary>
/// <param name="message"></param>
void AddTalkMessage(string message)
{
if(richTextBoxTalkInfo.InvokeRequired)
{
AddTalkMessageDelegate d = new AddTalkMessageDelegate(AddTalkMessage);//这行报错
richTextBoxTalkInfo.Invoke(d, new object[] { message });
}
else
{
richTextBoxTalkInfo.AppendText(message);
richTextBoxTalkInfo.ScrollToCaret();
}
}

非常奇怪啊,总是提示我没有匹配的重载
...全文
132 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
will_stier 2016-07-15
  • 打赏
  • 举报
回复
AddTalkMessage 居然被我写了两遍。下面还有一个定义。。。
  • 打赏
  • 举报
回复
搞清楚到底是哪一行报错?!!
南天空 2016-07-14
  • 打赏
  • 举报
回复
你先把它当成一个类来用,实例化一下再调用
巴士上的邂逅 2016-07-14
  • 打赏
  • 举报
回复
我试了试没错啊,是生成时出错还是运行时出错?
巴士上的邂逅 2016-07-14
  • 打赏
  • 举报
回复
你上边的代码,我复制过来,没出现错误。 你把代码改成下面,试试
//richTextBoxTalkInfo.Invoke(d, new object[] { message });
richTextBoxTalkInfo.Invoke(d, message);
  • 打赏
  • 举报
回复
你用的是Invoke启动带参数的委托,所以参数要是object类型,不是string。将函数和委托声明要改为:delegate void AddTalkMessageDelegate(object message);和void AddTalkMessage(object message),否则使用Invoke会提示参数类型不匹配

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧