【发布时间】:2015-08-01 02:54:43
【问题描述】:
static BackgroundWorker worker;
static void Main(string[] args)
{
worker = new BackgroundWorker();
worker.DoWork += worker_DoWork;
worker.RunWorkerAsync();
Console.ReadLine();
}
static void worker_DoWork(object sender,DoWorkEventArgs e)
{
string strClientId = "2211"; Authenticate(ref strClientId);
}
static void Authenticate(ref string strClientId)
{
Timer timer = new Timer(500);
//Error in this line
//Cannot use ref or out parameter 'strClientId' inside an anonymous method,lambda expression or query expression
timer.Elapsed += (sender, e) => Authenticates_Timer(sender, e,ref strClientId);
//timer.Elapsed += Authenticates_Timer();
timer.Start();
}
static void Authenticates_Timer(object sender, ElapsedEventArgs e, ref string strClientId)
{
//want to use variable here
strClientId = "";
}
如果有办法我可以在传递时使用 ref 变量 事件参数不能使用 ref 或 out 参数“strClientId” 在匿名方法、lambda 表达式或查询中 表达。我知道这是重复的问题,但我无法 弄清楚如何解决这个问题已经引用了不同的帖子和 在 codeproject 中也发布了问题,但没有人回应 感谢您的帮助
【问题讨论】:
-
你总是可以创建一个类,它有一个字段来保存客户 ID。然后传递一个类的实例。