是否可以让 Visual Studio 在操作员身上显示工具提示?
下图演示了函数的工具提示提示,但它不适用于运算符。
运算符通常具有简单的类型规范,例如'T -> 'T -> 'T
,但此类提示对于自定义提示可能很有用。
是否可以让 Visual Studio 在操作员身上显示工具提示?
下图演示了函数的工具提示提示,但它不适用于运算符。
运算符通常具有简单的类型规范,例如'T -> 'T -> 'T
,但此类提示对于自定义提示可能很有用。
按照丹尼尔的建议,我发布了一个我一直在为自己使用的解决方法。
解决方法只是部分有用,我仍在寻找更好的想法。
let (!><) a = ()
let z1 = op_BangGreaterLess 5
此代码是完全有效的,因为运算符表达式会生成一个具有编译器生成名称的函数。有关操作员名称的完整列表,请参阅此 MSDN 文章的“重载操作员名称”部分。
好消息是它op_BangGreaterLess
支持 IntelliSense 提示,还支持 IDE 的“转到定义”( F12) 命令,指向原始操作符声明。
坏消息是 IntelliSense 不允许快速输入完整的操作员名称 ( Ctrl+ Space),因此您必须手动输入整个名称。
恐怕这是不可能的(即使在 Visual Studio 2012 中,我也没有得到操作员的工具提示)。
我想这可以实现,但正如你所说,运算符通常有简单的类型。当使用自定义操作符时,这些操作符应该足够简单,以至于人们可以在不查看它们的类型(或相关的 XML 文档)的情况下使用它们。否则,使用命名函数可能会更好。
也就是说,如果您使用的是 F# Interactive,那么您可以轻松地使用它来探索运算符类型:
> (!><);;
val it : ('a -> unit) = <fun:clo@2>
如果我不能使用 F# Interactive,我通常会定义一个简单的虚拟符号来获取 IntelliSense:
let dummy () = (!><)
请注意,我添加了unit
参数来定义函数并避免值限制错误。