Действие делегата - коррекция объявления - PullRequest
0 голосов
/ 23 октября 2009

Согласно определению делегата действия, оно не возвращает значение, а передает значение.

Я передаю значение в Console.WriteLine ()

Action<int> an = new Action<int>(Console.WriteLine(3000));

Но все же я получаю сообщение об ошибке, так как ожидается имя метода. В чем проблема?

Ответы [ 3 ]

3 голосов
/ 23 октября 2009

Конструктор Action<int> ожидает, что вы передадите указатель на функцию, которая принимает целое число в качестве параметра и ничего не возвращает. То, что вы передаете, является не функцией, а выражением. Вы можете определить анонимную функцию или использовать существующую:

Action<int> an = new Action<int>(t => Console.WriteLine(t));
an(3000);
2 голосов
/ 23 октября 2009

Вы бы закодировали это так:

Action<int> an = new Action<int>(Console.WriteLine);
an(3000);

Chris

0 голосов
/ 23 октября 2009

Действие указывает только на метод, а не на какие-либо параметры.

Затем вы можете использовать его для вызова действия:

Action<int> action = new Action<int>(Console.WriteLine);
action.Invoke(3000);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...