Lista de acciones / funciones de C #

Tengo un programa que tiene que ejecutar una función de acuerdo con un Enum y me pregunto si hay otra forma de hacerlo que esta:

enum FunctionType
{
 Addition = 0,
 Substraction = 1,
 Mutiplication = 2,
 Division = 3
}
void ExecuteFunction(FunctionType Function)
{
  switch(Function)
  {
    case FunctionType.Addition: Addition();
    break;
    case FunctionType.Substraction: Subsctration();
    break;      
    ...
    default: ...  
  }
}

(Este no es el código que estoy usando, es solo para representar lo que quiero hacer). Este enfoque debería funcionar bien, pero ¿qué sucede cuando tienes muchas más funciones? No quiero tener un interruptor de 50 líneas. Así que quiero saber si hay una manera de simplificarlo, algo como esto quizás:

enum FunctionType : Action
{
 Addition = new Action(Addition);
 Substraction = new Action(Substraction);
 ....
}
void ExecuteFunction(FunctionType Function)
{
 (Action)Function.Invoke();
}

No se necesita un interruptor y lo que podrían ser 50 líneas se convierten en 1 línea. Pero esto no es posible, solo se aceptan tipos numéricos como enumeraciones. Creo que es posible tener unList<T> de acciones, pero eso requeriría agregar cada acción a la lista en tiempo de ejecución.

EDITAR: He encontrado en un código fuente una forma de hacerlo, pero realmente no puedo entenderlo. Esto es lo que obtengo: crean una costumbreAttribute que contiene unstring (El nombre del método) y sobre los métodos que hacen:

[CustomAtrribute("name")]
void Method()
{    
}

Entonces no sé cómo se llama esto por su nombre, supongo que algún tipo de reflexión, pero no sé cómo encontrar la información sobre esto.

EDIT2: Encontré la forma en que quiero hacer esto, agregaré una interfaz con una función, luego implementaré esa interfaz con el código dentro de la función y usaré unDictionary<Enum, Interface> para llamarlo No sé si debería responder a mi propia pregunta, de todos modos, gracias a todos, uno me ayudó.

Respuestas a la pregunta(2)

Su respuesta a la pregunta