Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio F#自动完成不';在自动完成成员之前,请不要启动_Visual Studio_F# - Fatal编程技术网

Visual studio F#自动完成不';在自动完成成员之前,请不要启动

Visual studio F#自动完成不';在自动完成成员之前,请不要启动,visual-studio,f#,Visual Studio,F#,在VisualStudio和monodevelop中,在开始查看类或名称空间成员之前,F#autocomplete不会启动 例如,此处不会启动自动完成: Syst 但在这里它将: System.TimeSp 这是为什么?自动完成窗口在某种程度上会妨碍代码编写并激怒程序员。在指定任何名称空间、模块或类型之前,选择的数量很大,因此成本往往大于收益 VisualStudio中的快捷方式(通常为Control+Space)允许随时尝试完成,因此该功能在需要时可以快速使用 许多程序员使用大量已定义的

在VisualStudio和monodevelop中,在开始查看类或名称空间成员之前,F#autocomplete不会启动

例如,此处不会启动自动完成:

Syst
但在这里它将:

System.TimeSp

这是为什么?

自动完成窗口在某种程度上会妨碍代码编写并激怒程序员。在指定任何名称空间、模块或类型之前,选择的数量很大,因此成本往往大于收益

  • VisualStudio中的快捷方式(通常为Control+Space)允许随时尝试完成,因此该功能在需要时可以快速使用

  • 许多程序员使用大量已定义的标识符打开大型名称空间

  • 完成窗口是智能的,因为它提供的标识符可能不是以已经键入的字母开头的。这进一步增加了候选人的数量

  • 让自动完成取决于剩余候选标识符的数量不是很直观,可能会分散注意力

虽然我不知道这是否是官方的理由,但目前的行为似乎是一个合理的选择。在绝大多数情况下,这是速度和注意力的良好折衷


我经常使用Control+Space快捷方式。在我看来,一个有用的改进是引入IDE中最有用的快捷方式;许多程序员之所以浪费时间,是因为他们没有意识到这一点。

如果它妨碍了程序员的工作,那么如果有人更喜欢自动完成列表,为什么没有一个选项可以再次打开它呢?我喜欢ReSharper的一个大特性是,它列出所有类型,而不管顶部的用法列表中有什么。@LaylConway我不是VS的开发人员,但我可以说,按Control+Space不会花费很多时间,如果只剩下一个选项,它也会完成整个表达式。习惯了之后,我不能说我有任何改变行为的需要。这可能是一个习惯问题,也可能取决于用例。虽然我不满意为什么与其他语言相比,他们可能会在F#中禁用它的推理,而且只有在这个特定的情况下,这个答案确实提供了一个体面的方式来继续我习惯的自动完成繁重的工作流,所以我将它标记为一个答案。