是否有可能在C#3或4中做到这一点?也许有一些反思?
class Magic
{
[RunBeforeAll]
public void BaseMethod()
{
}
//runs BaseMethod before being executed
public void Method1()
{
}
//runs BaseMethod before being executed
public void Method2()
{
}
}
Run Code Online (Sandbox Code Playgroud)
编辑
有一个替代解决方案,做Magic
一个单例并将您的代码放在静态实例的getter上.这就是我做的:
public class Magic
{
private static Magic magic = new Magic();
public static Magic Instance
{
get
{
magic.BaseMethod();
return magic;
}
}
public void BaseMethod()
{
}
//runs BaseMethod before being executed
public void Method1()
{
}
//runs BaseMethod before being executed
public void Method2()
{
}
}
Run Code Online (Sandbox Code Playgroud)
WoF*_*gel 10
有一个替代解决方案,使Magic成为单例并将您的代码放在静态实例的getter上.这就是我所做的.
public class Magic{
private static Magic magic;
public static Magic Instance{
get
{
BaseMethod();
return magic;
}
}
public void BaseMethod(){
}
//runs BaseMethod before being executed
public void Method1(){
}
//runs BaseMethod before being executed
public void Method2(){
}
}
Run Code Online (Sandbox Code Playgroud)