3

拡張メソッドがあります

type System.Int32 with
    member this.Thousand() = this * 1000

しかし、それは私がこのように書く必要があります

(5).Thousand()

メソッドではなくプロパティにすることから始めて、両方の括弧を取り除きたいです(学習のために)どうすればこれをプロパティにできますか?

4

3 に答える 3

3

私は F# についてよく知りません (恥ずべきことです!) が、このブログ投稿に基づいて、次のことを期待します。

type System.Int32 with  
    member this.Thousand 
      with get() = this * 1000

最初の括弧のセットから解放されないのではないかと思いますが (そうしないと、F#は全体をリテラルとして解析しようとする可能性があります)、2 番目の括弧には役立つはずです。

個人的には、この種のものを「本番」拡張機能には使用しませんが、多くの値を扱うテスト コードには役立ちます。

19.June(1976)特に、テスト データを構築するための非常にシンプルで読みやすい方法として、日付の周りに拡張メソッドがあると便利だと思いました。しかし、プロダクションコード用ではありません:)

于 2013-07-30T18:59:25.647 に答える