static void Main(string[] args) { Aop.AddAdvice(new ConsoleAdvice()); int i = 12; string s = "hello"; Aop.Exec(() => Foo()); Aop.Exec(() => Foo2(3)); Aop.Exec(() => Foo2(i)); Aop.Exec(() => Foo3(3, "hi")); Aop.Exec(() => Foo3(i, s)); string r = Aop.Exec <string>(() => Foo4(i, s)); Console.WriteLine("返回值 : " + r); TestObj o = new TestObj(); Aop.Exec(() => o.Test()); Aop.Exec(() => o.Test2(3)); Aop.Exec(() => o.Test2(i)); Aop.Exec(() => o.Test3(3, "hi")); Aop.Exec(() => o.Test3(i, s)); r = Aop.Exec <string>(() => o.Test4(i, s)); Console.WriteLine("返回值 : " + r); Console.ReadLine(); }