私はちょうどこのページの情報を読んだところです。演算子が言及されていますが、その使用法がどうなるかは私にはまったくわかりません。
誰でも簡単な説明を提供し、この演算子がどのように使用されるかを抜粋したコードを投稿し、場合によってはユースケースについて言及できますか?
編集:これは本当に厄介です。operator は、Don のリリース ノートでは言及されなくなりました。それはなぜですか?
2602 次
3 に答える
4
「?」のように聞こえます。operator は、動的言語ランタイム (DLR) に関連しています。つまり、コンパイル時ではなく実行時にオブジェクト メンバー (メソッド、プロパティ) にバインドする場合に使用します。
これは、動的メンバー呼び出しが C# でも機能することを望んでいたためです。悲しいかな、C# はこの機能を「疑似」型 (「動的」IIRC) を介して公開します。私の意見では、これによりコードがやや不明確になります (呼び出しが事前バインドか遅延バインドかを知るために変数宣言を追跡する必要があるため)。
正確な構文はわかりませんが、推測する必要がある場合は、「。」を置換または拡張します。(ドット) 演算子。次のように:
let x = foo?Bar()
または多分:
let x = foo.?Bar()
于 2009-05-21T00:04:43.227 に答える
1
dlr を使用して動的演算子を実装 するモジュールFSharp.Interop.Dynamicが nuget にあります。
let ex1 = ExpandoObject() in
ex1?Test<-"Hi";
ex1?Test |> should equal "Hi";
これはオープン ソースであり、Apache ライセンスであり、実装を見ることができ、単体テストのサンプル ケースが含まれています。
于 2011-07-29T12:42:42.090 に答える