2016-07-14 21 views
0

私はオブジェクトを持っていて、.Start()メソッドを持っているとしましょう。 この "object.Start()"のように、コンソールに入力してメソッドを呼び出すと、.Start()メソッドを呼び出す必要があります。文字列を含むオブジェクトのメソッドを呼び出す

+1

質問は何ですか? – Kinetic

+0

彼はコンソールに入力したオブジェクトのメソッドを呼び出す方法を尋ねています。したがって、 "object.Run()"と入力すると、オブジェクトのRunメソッドが呼び出されます。 – Mangist

答えて

1
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); 
    } 
} 
+0

パラメータを使用することはできますか? –

+0

はい、2番目のパラメータに 'null'を渡す代わりにmethodInfo.Invoke()にメソッドのパラメータのオブジェクト配列を渡すことができます。したがって、 "ABC"と123を渡したい場合は、methodInfo.Invoke(obj、new object [] {"ABC"、123})で呼び出すことができます。 – Mangist

+0

ああありがとう。 objは "obj.GetType();"メソッドを含むオブジェクトですか? –

関連する問題