Class Completion以什么顺序发布其结果?

时间:2009-02-09 12:25:23

标签: delphi ide class-completion

示例:我创建一个新单元,按顺序使用构造函数,析构函数,方法1,方法2,方法3等几个方法声明一个类,然后按Ctrl-Shift-C。 IDE会自动创建所有方法体,但是顺序是混合的,而不是在接口部分中声明的那样。

现在,这不是问题,但是有理由吗。混合它似乎比按声明的顺序进行组合更难。

或者是否有一些我无法看到的规则?

4 个答案:

答案 0 :(得分:12)

这有点复杂,因为它取决于您的方法的排列方式。

如果它们已经按字母顺序实现,它将尝试并保持这一点。如果IDE无法推断出任何类型的订单,它会在文件末尾删除它们。

按照惯例,如果您在表单中包含注释,则会出现另一个问题:{< ClassName>在实现方法的第一个块之前,然后使用该注释来描述所有后续类实现,它将尝试将这些方法组合在一起。

字母顺序遵循上述相同的规则,除了它可以将新方法注入由指示的注释描绘的逻辑块。

如果您使用全新类的类完成,您会注意到IDE将自动生成描述注释。

如果让类完成自动排列方法并且只使用 Ctrl + Shift + UpAr 键在方法的实现之间导航和声明,顺序应该不那么重要。

通常,我将使用上面的键序列跳转到类decl,然后使用箭头键转到我想要的decl中的方法,然后再次使用该键序列来快速访问它。

另一个不错的键序列是 Ctrl + Alt + UpAr Ctrl + Alt + DnAr ,它将从文件顺序快速从方法impl跳转到方法impl。

答案 1 :(得分:3)

默认情况下,我很确定它会尝试按方法名称按字母顺序创建它们,然后在使用相同方法添加更多方法时尝试保持这一点。最终结果可能是订购时的随机混合。

答案 2 :(得分:0)

根据我的经验,我发现IDE有时会按字母顺序创建方法,但有时候它只是将新方法附加到文件的末尾。

答案 3 :(得分:0)

IDE尝试以alpahabetical顺序创建所有内容。但是,如果方法不按顺序排列(例如,您重命名方法),则会陷入混乱。确切的行为似乎取决于版本。旧版本只需将新方法以任何顺序附加到文件末尾。较新的版本似乎有点聪明,但我还没有确切地知道如何。