我有这个代码来解决每个人生存的祸根
delegate int GetSelectedIndicesCountCallback(ListBox thing);
private int GetSelectedIndicesCount(ListBox thing)
{
if (this.InvokeRequired)
{
GetSelectedIndicesCountCallback d = new GetSelectedIndicesCountCallback(GetSelectedIndicesCount);
Invoke(d, new object[] { thing });
}
else
{
return thing.SelectedIndices.Count;
}
return 0;
}
返回0在那里因为没有它就会出错。但是,它总是返回0.我不知道如何让它返回其他值。
答案 0 :(得分:5)
对Control.Invoke的调用将返回您方法的值。您所要做的就是将其投射到int
并将其返回。
return (int)Invoke(d, new object[] { thing });
答案 1 :(得分:2)
当需要调用时,您自己调用并忽略返回的值。这就是编译器需要return
语句的原因。
您应该返回调用的结果,如:
return (int) Invoke(d, new object[] { thing });