0

「Programming in C#」という本を読んでいるときに、理解できない構文に出くわしました。

public static void Main(string[] args)
{
    new Thread( () =>
         {
            for(int x = 0; x < 10; x++)
            {
                _field++;
                Console.WriteLine("Thread A : {0}", _field);
            }

         }).Start();  
}

" () => " は何を参照し、どのコンストラクターが呼び出されますか? ググってみましたが、「() =>」はちょっとググりにくいです。

4

3 に答える 3

1

これはラムダ式です。ドキュメントについては、こちらを参照してください。

より具体的には、無名関数です。コンストラクターにはThread、スレッドの開始時に呼び出される関数が必要です。再利用 ( ) する関数を作成するのではなくvoid ThreadFunc() { ... }、無名関数をインラインで宣言します。

于 2013-09-03T08:39:54.927 に答える
0

() => ...just は、パラメーターを取らないラムダ式であることを意味します。以下と同じです

パラメータなし:

void MyWork() // This is your class constructor
{
    for(int x = 0; x < 10; x++)
        {
            _field++;
            Console.WriteLine("Thread A : {0}", _field);
        }
}



new Thread(MyWork).Start();

パラメータ付き:

void MyWork(int _number) // This is your class constructor
{
    for(int x = 0; x < _number; x++)
        {
            _field++;
            Console.WriteLine("Thread A : {0}", _field);
        }
}



new Thread(() => MyWork(10)).Start();
于 2013-09-03T08:47:45.607 に答える