2009-10-23 3 views
0

В соответствии с определением делегата действия он не возвращает значение, а передает значение.Действия делегата-исправление деления

Я прохожу значение Console.WriteLine()

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

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

ответ

2

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

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

Chris

3

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

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

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

Вы можете использовать его как это, чтобы вызвать действие:

Action<int> action = new Action<int>(Console.WriteLine); 
action.Invoke(3000); 
Смежные вопросы