あなたが達成しようとしていることは完全にはわかりませんが、より良い方法で達成できると確信しています。基本的に、あなたの質問を正しく理解していれば、この関数を呼び出すと、実行したいクラスとメソッドの名前が返されます。
その場合は、「文字列」全体を無期限に削除して、デリゲートを調べ始めます。
このことを考慮:
public class Class2
{
public static void Method2() { }
} // eo class 2
public class Class3
{
public static void Method3() { }
} // eo class 3
public class Class4
{
public static void Method4() { }
} // eo class 4
さて、メインクラスに来ます
public class MainClass
{
private delegate void MethodDelegate();
private List<MethodDelegate> delegates_ = new List<MethodDelegate>();
// ctor
public MainClass()
{
delegates_.Add(Class2.Method2);
delegates_.Add(Class3.Method3);
delegates_.Add(Class4.Method4);
}
// Call a method
public void Method1()
{
// decide what you want to call:
delegates_[0].Invoke(); // "Class2.Method2"
} // eo Method1
} // eo class Main