evildictaitor said:
The first parameter of Func<TResult, TArg1> is the return type of the function, so no, you can't do that.

Func<char, int> corresponds to a function with signature

char foo(int parameter) {}

The syntax shown in Visual Studio is Func<T, TResult> where T is a parameter.

Either way, it won't let me pass in a type parameter by reference.