С анонимной функцией в C # 4.0, почему я не могу определить встроенный делегат

2

Каковы про-против наличия делегатов, имеющих зарезервированный тип определения.

Например, в c, если я хочу определить функцию, которая принимает указатель на функцию, я могу просто определить

void F(bool (*pFn)(int));

В С# мне нужно сделать дополнительный шаг первого определения типа делегата, если мне нужно было создать typedef в c, прежде чем я смог бы определить указанную выше функцию

delegate bool del(int s);
void F(del d){...}

Я считаю, что стиль С# будет менее понятным и гибким.

A: Я не понимаю, что это можно сделать в С#
B: Будет ли это быть плохой языковой функцией, добавляемой, введя сложность системы декларирования типа c.


Позвольте мне пояснить, что я знаю, что fucn доступен. Я задаюсь вопросом, есть ли способ определить произвольный делегат.

  • 2
    Я думаю, что это выполнимо в .net 3.5 с классом Func.
  • 0
    Что делать, если я хочу, чтобы 10 параметров не были классом func, а просто предопределенным делегатом. Я знаю, что func <t1, t2, t3, t4> существует, есть ли произвольный
Показать ещё 2 комментария
Теги:
language-features

2 ответа

5
Лучший ответ

Func в .NET 3.5 позволит вам иметь до 4 параметров и 1 возвращаемое значение. Func в .NET 4 позволит вам иметь до 16 параметров и 1 возвращаемое значение. Если вам нужно больше, чем вам, вероятно, вы должны получить квантовый компьютер.

Также действие имеет те же ограничения в .NET 3.5 и .NET 4, за исключением возвращаемого значения.

3

Как насчет этого?

void F(Func<int, bool> d){...} 

Ещё вопросы

Сообщество Overcoder
Наверх
Меню