powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как в Action использовать ключевое слово return ?
9 сообщений из 9, страница 1 из 1
Как в Action использовать ключевое слово return ?
    #38660568
Pruvetik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос странный наверное.

Имеется метод, принимающий простой Action.

Хочу написать просто:
Код: c#
1.
2.
3.
4.
5.
private int Process ()
{
Action act = () => { ...вычисляем... return result; }; // Хочу, чтобы результат вернулся сразу из Process
MyObj.Func (act);
}



Но ловлю ошибку
Код: xml
1.
"System.Action" возвращает значение void, поэтому после ключевого слова return не должно присутствовать выражение объекта



Я конечно могу написать так
Код: c#
1.
2.
3.
4.
int i = 0;
Action act = () => {i = 5; };
MyObj.Func (act);
return i;



Но можно как-то все же первым вариантом ? Второй вариант мне кажется довольно громоздким.
...
Рейтинг: 0 / 0
Как в Action использовать ключевое слово return ?
    #38660578
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pruvetik,

А где гарантия, что MyObj.Func вызывает act синхронно?
...
Рейтинг: 0 / 0
Как в Action использовать ключевое слово return ?
    #38660581
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pruvetik, используй Func<int>
...
Рейтинг: 0 / 0
Как в Action использовать ключевое слово return ?
    #38660618
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pruvetik,
авторКак в Action использовать ключевое слово return ?
Да никак
...
Рейтинг: 0 / 0
Как в Action использовать ключевое слово return ?
    #38660623
Pruvetik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bazile,

Спасибо.
Получилось так:
return MyObj.MyFunc<int>(() => { ...; return result; });

В вполне компактно.

Изопропил,
О синхронизации я позаботился, этим как раз MyObj.MyFunc и занимается в блоках try finally (внутри себя). Все ок. Спасибо за предупреждение :)
...
Рейтинг: 0 / 0
Как в Action использовать ключевое слово return ?
    #38661099
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чем отличаются out и ref?
...
Рейтинг: 0 / 0
Как в Action использовать ключевое слово return ?
    #38661838
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PruvetikВопрос странный наверное.

Имеется метод, принимающий простой Action.

Хочу написать просто:
Код: c#
1.
2.
3.
4.
5.
private int Process ()
{
Action act = () => { ...вычисляем... return result; }; // Хочу, чтобы результат вернулся сразу из Process
MyObj.Func (act);
}




Но ловлю ошибку
Код: xml
1.
"System.Action" возвращает значение void, поэтому после ключевого слова return не должно присутствовать выражение объекта




Я конечно могу написать так
Код: c#
1.
2.
3.
4.
int i = 0;
Action act = () => {i = 5; };
MyObj.Func (act);
return i;




Но можно как-то все же первым вариантом ? Второй вариант мне кажется довольно громоздким.

Код: c#
1.
2.
3.
4.
5.
private int Process ()
{
Func act = () => { ...вычисляем... return result; }; // Хочу, чтобы результат вернулся сразу из Process
MyObj.Func (act);
}
...
Рейтинг: 0 / 0
Как в Action использовать ключевое слово return ?
    #38661839
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pationPruvetikВопрос странный наверное.

Имеется метод, принимающий простой Action.

Хочу написать просто:
Код: c#
1.
2.
3.
4.
5.
private int Process ()
{
Action act = () => { ...вычисляем... return result; }; // Хочу, чтобы результат вернулся сразу из Process
MyObj.Func (act);
}





Но ловлю ошибку
Код: xml
1.
"System.Action" возвращает значение void, поэтому после ключевого слова return не должно присутствовать выражение объекта





Я конечно могу написать так
Код: c#
1.
2.
3.
4.
int i = 0;
Action act = () => {i = 5; };
MyObj.Func (act);
return i;





Но можно как-то все же первым вариантом ? Второй вариант мне кажется довольно громоздким.

Код: c#
1.
2.
3.
4.
5.
private int Process ()
{
Func act = () => { ...вычисляем... return result; }; // Хочу, чтобы результат вернулся сразу из Process
MyObj.Func (act);
}



сорь написал на коленке, правильно будет:
Код: c#
1.
2.
3.
4.
5.
private int Process ()
{
Func<возвращаемый тип> act = () => { ...вычисляем... return result; }; // Хочу, чтобы результат вернулся сразу из Process
MyObj.Func (act);
}
...
Рейтинг: 0 / 0
Как в Action использовать ключевое слово return ?
    #38661862
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pation,
я так понял что MyObj.Func void.. return из Process () надо?
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как в Action использовать ключевое слово return ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]