link中如何将委托作为返回值传一个运算符?代码是怎么写的?

link中如何将委托作为返回值传一个运算符?代码是怎么写的?

比如:

 Func<int, int, int> ParseOp(char c)
{
    switch (c)
        {
            case '+': return (x, y) => x + y;
                break;
                case '-': return (x, y) => x - y;
                break;
                case '*': return (x, y) => x * y;
                break;
                case '/': return (x, y) => x / y;
                break;
        }
}

使用:
int i = 7;
int j = 5;
char op = '-';
int result = ParseOp('-')(7, 5); // 2