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 Visual Studio 2010 IntelliSense:关于F#运算符的提示_Visual Studio_F#_Intellisense - Fatal编程技术网

Visual studio Visual Studio 2010 IntelliSense:关于F#运算符的提示

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文档)的情况下使用它们。否则,最好使用命名函数 也

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

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


操作符通常有简单的类型规范,比如
'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