Red de conocimiento informático - Computadora portátil - Múltiples subrutinas a() b() c() en C#. Cuando se llama al programa principal, si el valor de la variable x es aob o c. ¿Cómo podemos llamar directamente a la subrutina correspondiente?

Múltiples subrutinas a() b() c() en C#. Cuando se llama al programa principal, si el valor de la variable x es aob o c. ¿Cómo podemos llamar directamente a la subrutina correspondiente?

La cadena y el método son dos tipos diferentes

Si desea ejecutar un método a través de una cadena, debe mapear su relación y luego usar la cadena para ejecutar el método asociado.

Utilizo un diccionario para registrar manualmente la relación aquí: var?dicHandle?=?new?Dictionarylt;string,?Actionlt;stringgt;gt;();

dicHandle.Add("Timing ", ?c?=gt;?Timing(c));

dicHandle.Add("Revolver",?c?=gt;?Stirring(c));

dicHandle.Add("Add",?c?=gt;?Add(c));

string?x?=?"Timing";

//Cómo pasar el valor de X Llamar directamente

//? Timing (300)

dicHandle[x].Invoke("300");

El efecto es el siguiente mostrado:

Por supuesto, hay otro método de mapeo que es el mapeo automático. Puede crear dinámicamente un tipo a través de la reflexión y luego llamar dinámicamente a sus métodos, e incluso puede cargar dinámicamente el ensamblado a través del nombre de la DLL. /p>