2

我在将主要表单/类拆分为较小的部分时遇到问题。

主要原因是因为控制事件。我不知道如何使类更小,因为它由 20 个控件(至少)组成,每个控件至少有 3 个事件。

甚至一些我实际上设法转移到一个单独的类的方法,它们需要将控件作为方法参数发送,以便它们能够按照最初的预期工作。

一个小例子是

public static bool GroupContainsSnippet(TreeView tree, string group, string snippetName)
{
    bool result = false;

    if (tree.Nodes[group] != null)
    {
        result = tree.Nodes[group].Nodes.ContainsKey(snippetName);
    }

    return result;
}

出于某种原因,为了做那种事情而不得不发送控件感觉很奇怪,所以我希望有一种更清晰的方法。

提前致谢。

4

2 回答 2

2

使用您的示例,我将创建自己的 TreeView 派生类,例如 MyTreeView,并将尽可能多的 TreeView 代码放入其中。例如,

public class MyTreeView : TreeView
{
    public bool GroupContainsSnippet(string group, string snippetName)
    {
        return Nodes[group] != null && Nodes[group].Nodes.ContainsKey(snippetName);
    }    
}

这是一种更 oo 的方法,因为它将您的特定 TreeView 行为封装到它自己的类中。

于 2012-07-27T15:55:40.540 回答
1

如果您认为您的班级太大,您是否考虑过部分班级?你的类的大小不会改变,但它会改变你在任何时候必须处理的一个类文件中的代码量。

MSDN 链接

于 2012-07-27T15:34:18.477 回答