有没有办法在运行时修改静态方法的行为?如何在运行时更改静态方法的行为?
例如:
说我有这个类
public class Utility {
public static void DoSomething(string data){
//...
}
}
有没有办法做这样的事情:
typeof(Utility).SetMethod("DoSomething", (data) => { /*Do something else...*/ });
这样的,如果你调用Utility.DoSomething
它执行新码?
你可以将lambda存储在一个变量中并让'DoSomething'调用变量?然后,只要您想存储新的lambda,就可以更改该变量。但我不是C#开发者... –
我提供了一个答案,因为它非常简单。但是,我相信这个问题属于SO。 – svidgen
也使用非静态方法可能是一个更好的主意。 –