Поэтому единственное, что вы можете сделать, это объявить свой пользовательский делегат:
delegate bool MyFunc<T1, T2>(T1 a, out T2 b)
Ответ 2
Вам нужно создать свой собственный тип делегата, например:
delegate bool MyFunc(Type1 a, out Type2 b);
Ответ 3
Возможно, вы захотите переосмыслить свой дизайн. Вам действительно нужно усложнить свой код, добавив параметр out?
Вы можете обернуть тип возврата bool и второй тип в свой собственный класс (или .NET 4.0 Tuple) и использовать его как возвращаемый тип:
public Func<Type1, Tuple<Type2, bool>> DetectMethod;
Конечно, если вы хотите использовать делегаты для ссылки на методы try-parse, вы находитесь на правильном пути, и вам нужно будет определить новый делегат, как уже описывали другие.