是否有解决方法来更新匿名方法内的参数参数?更新匿名方法内的参数参数
我知道一个匿名方法不允许访问外部范围的ref参数,但是有没有其他方法可以做到这一点?我使用的是外部库的MessageStream所以不能改变委托的争论......
void DoWork(ref int count)
{
MessageStream Stream = new MessageStream();
Stream.MessageReceived += (o, args) =>
{
//Error cannot use ref or out parameter inside anonymous method
count++;
};
}
答案取决于你是否可以确定'Stream.MessageReceived'会在'DoWork'返回之前引发。你能确定吗? – hvd
你知道不安全的上下文吗?如果没有我发布这个解决方案的答案 – faby
@faby我想我知道你在想什么,如果我是对的,那是行不通的。它通常会*工作,但有时会失败,并且无法修复它,以便始终有效。 – hvd