Angenommen, ich habe ein Objekt mit einer .Start() -Methode. Ich möchte die Methode aufrufen, indem Sie in der Konsole eingeben, wie diese "object.Start()", die die .Start() -Methode aufrufen sollte.Call-Methode in Objekt mit Zeichenfolge
Antwort
class Program
{
static void Main(string[] args)
{
var obj = new object(); // Replace here with your object
// Parse the method name to call
var command = Console.ReadLine();
var methodName = command.Substring(command.LastIndexOf('.')+1).Replace("(", "").Replace(")", "");
// Use reflection to get the Method
var type = obj.GetType();
var methodInfo = type.GetMethod(methodName);
// Invoke the method here
methodInfo.Invoke(obj, null);
}
}
Kann ich Parameter damit verwenden? –
Ja, bei der MethodeInfo.Invoke() anstelle der Übergabe von 'Null' für den zweiten Parameter können Sie ein Objektarray der Methodenparameter übergeben. Wenn Sie also "ABC" und 123 übergeben möchten, können Sie es mit methodInfo.Invoke (obj, neues Objekt [] {"ABC", 123}) aufrufen; – Mangist
Ah danke. Und obj in "obj.GetType();" ist das Objekt, das die Methode enthält? –
Was ist die Frage? – Kinetic
Er fragt, wie die Methode für ein Objekt aufgerufen wird, das er in die Konsole eingegeben hat. Wenn ich also "object.Run()" eintippe, wird die Run-Methode für sein Objekt aufgerufen. – Mangist