[ad_1]
匿名メソッド、ラムダ式、またはクエリ式内で ref または out パラメーター ‘strClientId’ を使用することはできません
C#
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); //whatever You want the background thread to do... } 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,Func<strclientid>); //timer.Elapsed += Authenticates_Timer(); timer.Start(); } static void Authenticates_Timer(object sender, ElapsedEventArgs e, ref string strClientId) { //want to use variable here strClientId = ""; }</strclientid>
解決策 1
あなたにはできないからです。
このようなエラー メッセージが表示された場合は、Google で検索してください。コードに固有のものをすべて取り出して、残りを Google で検索してください。 匿名メソッド、ラムダ式、またはクエリ式内で ref または out パラメーターを使用することはできません[^]
一般的に、あなたはそれに会う最初の人ではないことがわかります…
トップヒットを見ると(2009年からのSO): http://stackoverflow.com/questions/1365689/cannot-use-ref-or-out-parameter-in-lambda-expressions[^] それができない理由を説明します。 他の方法を見つける必要があります – なぜそれをしたいのか私にはわからないので、私にはどうすることもできません!
[ad_2]
コメント