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>