2

VisualStudio ギャラリーの C#/F# テンプレートを使用して F# ASP.NET MVC 4 アプリを作成しているときに、ある疑問に襲われました。私は次のモデルクラスを持っています:

namespace MyApp.Models

open System
open System.ComponentModel.DataAnnotations
open System.Collections.Generic

type Product() = 
    [<Key>] member val Id = Guid.NewGuid() with get, set
    [<Required>] member val Name = "" with get, set
    member val Iban = "" with get, set
    member val Categories = new List<ProductCategory>() with get, set

F# には独自の型があるため、最後の例のような場合、F# に相当するもの (F# リスト、シーケンスなど) を使用する必要がありますか、それともシステム型を使用する必要がありますか? もしそうなら、どのような理由が考えられるでしょうか?

どうもありがとうございました!

4

1 に答える 1

2

経験則として、私はあなたのモデルを消費している言語を調べます。ずっとF#の場合は、それを選択してください。それが混在している場合は、より賢明である必要があります。余談ですが、Option<>C List<>#でかなりうまくプレイできます(ただし、コードの一部を「クリーンアップ」するには、型エイリアスが必要です)。また、F#シーケンスは単なるIEnumerable<>、なので、心配する必要はありません。また、F#で配列とResizeArray<>(別名System.Collections.Generic.List<>)を使用しても問題はありません。状態の変化に注意する必要があります。

于 2013-03-13T14:47:13.510 に答える