文字列があり、この文字列をコードに変換する必要があります。
string s = "Method1";
string s_1 = "()";
s = s + s_1;
switch ((irrelevant))
{
case 1:
(i need the string to code here to enable the Mehod1)
break;
}
void Method1()
{
}
これを行う方法はありますか?
リフレクションを使用すると、名前だけで(括弧なしの名前で)名前でメソッドを呼び出すことができます。
名前でメソッドを実行する必要がある場合は、このソリューションを受け入れる必要があります
たとえば、メソッドが名前付きMethod1
の同じクラスで名前が付けられている場合ClassWithMethods
Type type = typeof(ClassWithMethods);
MethodInfo methodInfo = type.GetMethod("Method1");
result = methodInfo.Invoke(this, null);
インボークの最初のパラメーターは同じインスタンスを実行しているため、これを使用しますが、このパラメーターはメソッドまたはコンストラクターを呼び出すオブジェクトを要求します。メソッドが静的な場合、この引数は無視されます。コンストラクターが静的である場合、この引数は null であるか、コンストラクターを定義するクラスのインスタンスである必要があります