4

オペレーターにツールチップを表示するように Visual Studio を作成することはできますか?

次の図は、関数のツールヒント ヒントを示していますが、演算子では機能しません。

関数のツールチップ ヒント

演算子は通常、 のような単純な型仕様を持ちますが'T -> 'T -> 'T、そのようなヒントはカスタムのものに役立ちます。

4

2 に答える 2

7

ダニエルの提案に従って、私は自分で使用してきた回避策を投稿しています。
回避策は部分的にしか役に立たず、私はまだより良いアイデアを探しています.

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

演算子式はコンパイラによって生成された名前で関数を生成するため、このコードは完全に有効です。オペレーター名の完全なリストについては、この MSDN 記事の「オーバーロードされたオペレーター名」セクションを参照してください。

良いニュースは、 IntelliSense ヒントをサポートし、元の演算子宣言を指す IDE のop_BangGreaterLess"定義に移動" ( ) コマンドもサポートしていることです。 悪いニュースは、IntelliSense では完全な演算子名 ( + ) をすばやく入力できないため、名前全体を手動で入力する必要があることです。F12
CtrlSpace

于 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 に答える