
1个回答
展开全部
需要用反射相关的功能。
using System;
namespace Ref
{
class Program
{
static void Main(string[] args)
{
SayHello obj = new SayHello();
Type type = typeof(SayHello);
type.GetMethod("Say").Invoke(obj, new object[0]);
Console.ReadKey(true);
}
}
class SayHello
{
public void Say()
{
Console.WriteLine("Hello World!");
}
}
}
追问
我知道这个反射的方法,但是我想知道用委托怎么处理,因为在我的引擎里面调用函数用委托比反射和sendmessage的方法执行效率要高的多,我主要是为了代码优化这块,不过还是谢谢你
追答
这个可能就需要用代码来实现了吧
using System;
namespace Ref
{
delegate void dgtSayHello();
class Program
{
static void Main(string[] args)
{
SayHello obj = new SayHello();
obj.GetSayHello("SayCn")();
Console.ReadKey(true);
}
}
class SayHello
{
public void Say()
{
Console.WriteLine("Hello World!");
}
public void SayCn()
{
Console.WriteLine("世界你好!");
}
public void SayUs()
{
Console.WriteLine("Hello World!");
}
public dgtSayHello GetSayHello(string methodName)
{
switch (methodName)
{
case "SayCn":
return new dgtSayHello(this.SayCn);
case "SayUs":
return new dgtSayHello(this.SayUs);
default:
return new dgtSayHello(this.Say);
}
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询