public class MyClass
{
public delegate object MyDelegate(object value);
MyDelegate del1, del2, del3;
public MyClass()
{
del1 = Method1;
del2 = Method2;
del3 = Method3;
// remaining Ctr code here
}
public MyDelegate GetMethodByName(string methodName)
{
if (methodName.Equals("Method1"))
return del1;
if (methodName.Equals("Method2"))
return del2;
if (methodName.Equals("Method3"))
return del3;
return null;
}
public object Method1(object value)
{
// some code here
return null;
}
public object Method2(object value)
{
// some code here
return null;
}
public object Method3(object value)
{
// some code here
return null;
}
}
Если ваш список методов, из которых вы хотите искать, ограничен статически определенными методами, и у вас нет перегруженных методов, то это решение работает без дополнительных затрат на использование отражения. Однако, если вы хотите, чтобы решение было универсальным или работало с перегруженными методами, вы бы пошли тем же путем, что и другие посты, используя отражение.