Visual studio Visual Studio 2010 IntelliSense:关于F#运算符的提示
是否可以使Visual Studio在操作员上显示工具提示 下图演示了函数的工具提示提示,但它不适用于运算符Visual studio Visual Studio 2010 IntelliSense:关于F#运算符的提示,visual-studio,f#,intellisense,Visual Studio,F#,Intellisense,是否可以使Visual Studio在操作员上显示工具提示 下图演示了函数的工具提示提示,但它不适用于运算符 操作符通常有简单的类型规范,比如'T->'T->'T->'T,但是这样的提示对于自定义的类型很有用。恐怕这是不可能的(即使在Visual Studio 2012中,我也没有操作符的工具提示) 我想这是可以实现的,但正如您所说,运算符通常有简单的类型。在使用自定义运算符时,这些运算符应该足够简单,以便人们可以在不查看其类型(或相关的XML文档)的情况下使用它们。否则,最好使用命名函数 也
操作符通常有简单的类型规范,比如
'T->'T->'T->'T
,但是这样的提示对于自定义的类型很有用。恐怕这是不可能的(即使在Visual Studio 2012中,我也没有操作符的工具提示)
我想这是可以实现的,但正如您所说,运算符通常有简单的类型。在使用自定义运算符时,这些运算符应该足够简单,以便人们可以在不查看其类型(或相关的XML文档)的情况下使用它们。否则,最好使用命名函数
也就是说,如果您使用F#Interactive,那么您可以轻松地使用它来探索操作符类型:
> (!><);;
val it : ('a -> unit) = <fun:clo@2>
(!>根据Daniel的建议,我发布了一个我自己使用的解决方案。
这个变通方法只是部分有用,我仍在寻找更好的想法
let (!><) a = ()
let z1 = op_BangGreaterLess 5
let(!>还有另一个解决方法:op\u BangGreaterLess
是一个功能齐全的同义词,可用于智能感知提示。它还支持转到定义
。不幸的是,快速键入不支持op\u*
;您必须手动键入它们。@bytebuster这是一个很酷的解决方法,我不知道这个。我想知道F#团队是否知道:-)@bytebuster:你应该把它作为一个答案发布。注意,你经常希望你的伪函数是内联的,否则你可能会看到完全通用类型的特殊版本。例如,对比let dummy()=(+)
与let inline dummy=(+)
的比较。
let (!><) a = ()
let z1 = op_BangGreaterLess 5