4

是否可以让 Visual Studio 在操作员身上显示工具提示?

下图演示了函数的工具提示提示,但它不适用于运算符。

函数的工具提示提示

运算符通常具有简单的类型规范,例如'T -> 'T -> 'T,但此类提示对于自定义提示可能很有用。

4

2 回答 2

7

按照丹尼尔的建议,我发布了一个我一直在为自己使用的解决方法。
解决方法只是部分有用,我仍在寻找更好的想法。

let (!><) a = ()
let z1 = op_BangGreaterLess 5

此代码是完全有效的,因为运算符表达式会生成一个具有编译器生成名称的函数。有关操作员名称的完整列表,请参阅此 MSDN 文章的“重载操作员名称”部分。

好消息是它op_BangGreaterLess支持 IntelliSense 提示,还支持 IDE 的“转到定义”( F12) 命令,指向原始操作符声明。
坏消息是 IntelliSense 不允许快速输入完整的操作员名称 ( Ctrl+ Space),因此您必须手动输入整个名称。

于 2012-08-29T16:40:10.110 回答
4

恐怕这是不可能的(即使在 Visual Studio 2012 中,我也没有得到操作员的工具提示)。

我想这可以实现,但正如你所说,运算符通常有简单的类型。当使用自定义操作符时,这些操作符应该足够简单,以至于人们可以在不查看它们的类型(或相关的 XML 文档)的情况下使用它们。否则,使用命名函数可能会更好。

也就是说,如果您使用的是 F# Interactive,那么您可以轻松地使用它来探索运算符类型:

> (!><);;
val it : ('a -> unit) = <fun:clo@2>

如果我不能使用 F# Interactive,我通常会定义一个简单的虚拟符号来获取 IntelliSense:

let dummy () = (!><)

请注意,我添加了unit参数来定义函数并避免值限制错误。

于 2012-08-29T11:22:25.860 回答