0

好的,所以我确实有一个关于在 WinForms 应用程序中实现接口的问题。基本上我有一个我已经构建的控件库。每个控件都定义了一个与主窗体交互的接口。

我一直在做的是创建一个属性处理程序,它是接口的类型,然后这样做。

在控件上:

public interface ITest {
    void Test1();
    void Test2();
}

private ITest _testHandler;

public ITest TestHandler { 
    get { return _testHandler; }
    set { _testHandler = value; }
}

在主窗体上:

public MainForm : Form, MyControl.ITest { 

    public MainForm() { 
        InitializeComponent();
        MyTestControl.TestHandler = this;
    }

    // Implementing methods here...
}

界面工作正常。我只是好奇为什么每个人都占用这么多内存。我不认为接口应该真正影响性能。

4

1 回答 1

1

接口不占用内存;数据确实如此。您是实现类(除其他外)实际上占用了内存。

我会寻找一个内存分析器来帮助你缩小占用这么多内存的范围。您可能会一遍又一遍地创建不必要的对象,并且可以使用工厂模式进行改进,该模式将缓存可重用的对象。

Viausl Studio(我认为是 Premium 和 Ultimate 版本)有一个性能向导,包括内存分析(在 VS 2010 和 2012 中的“分析”菜单下)

我使用过Ants Memory Profiler并且喜欢它,但它不是免费的。但是,它确实有 14 天的免费试用期,可以让您度过难关。

于 2012-10-17T18:07:03.333 回答