当前位置:编程学习 > C#/ASP.NET >>

调用C#类库中一个函数就自动运行一个功能是怎么做到的



        private void button2_Click(object sender, EventArgs e)
        {
            int aaa = int_.F16("Ks");
        }
--------------------编程问答-------------------- static静态方法 --------------------编程问答-------------------- 没看懂  --------------------编程问答-------------------- 谢谢楼上的回答

如图我调用类库存里的int_.F16这个函数,我点运行不会马上执行int_.F16这个函数,而是先运行类库里的一个功能,之后才运行int_.F16这个函数,不知道他是怎么实现的 --------------------编程问答-------------------- 补充一点,该库存里有的函数执行时不会先运行类库里的一个功能。

引用 1 楼 wknight_it 的回复:
static静态方法
能说一下具体怎么做的吗? --------------------编程问答-------------------- 楼主你用的不就是静态方法么。。 --------------------编程问答-------------------- 这个水也许比较深,我记得有些.net反编译工具可以做得到,至于具体怎么做估计得对JIT层有相当的经验。 --------------------编程问答-------------------- class MyClass
{
    public static void foo() {  }
}

调用:
MyClass.foo(); --------------------编程问答-------------------- 使用虚拟方法可以实现先执行一个功能再执行本函数。

class Base
{
    public void foo() 
    {
        onfoo();
        dosthing();
    }
    public virtual void onfoo()
    {
        
    }
}
class Derived
{
    public override void foo()
    {
        dosthing_first();
    }
}
--------------------编程问答--------------------
引用 8 楼 caozhy 的回复:
使用虚拟方法可以实现先执行一个功能再执行本函数。


C# code
class Base
{
    public void foo() 
    {
        onfoo();
        dosthing();
    }
    public virtual void onfoo()
    {
        
    }
}
class Der……

我看楼主问的不像是类的设计问题。应该是需要截持函数。 --------------------编程问答-------------------- --------------------编程问答--------------------
引用 10 楼 caozhy 的回复:
在一些动态语言里面,这被叫做“猴子补丁”(monkey-patches)。
Roslyn 的一个作用就是在C#里面实现类似的功能。

Roslyn 还能做这事,难道还能修改其它dll元数据的内存映射?真强悍,看来诱惑真的不是一点点 --------------------编程问答-------------------- 而是先运行类库里的一个功能,之后才运行int_.F16这个函数,不知道他是怎么实现的

看下他的代码不就知道了 --------------------编程问答-------------------- AOP
什么是AOP?
.NET中AOP的几种实现方案
Rating of Open Source AOP Frameworks in .NET
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,