F # jenerik Listesini
module Csv
open System;
type Sheet() =
let rows = new List<Object>()
ama aşağıdaki hatayı alıyorum:
No constructors are available for the type
List<Object>
C:\…\Csv.fs
: 6
yapıyorum ne yanlış?
F # jenerik Listesini
module Csv
open System;
type Sheet() =
let rows = new List<Object>()
ama aşağıdaki hatayı alıyorum:
No constructors are available for the type
List<Object>
C:\…\Csv.fs
: 6
yapıyorum ne yanlış?
başkalarının ne önermek için daha basit bir alternatif olarak, ResizeArray<T>
adlı türünü kullanabilirsiniz. Bu F # çekirdek kütüphanelerde tanımlanan System.Collections.Generic.List<T>
için bir tür takma adıdır: derlenen kodunda
type Sheet() =
let rows = new ResizeArray<Object>()
, ResizeArray<T>
System.Collections.Generic. List<T>
aşağı derlenmiş olacak, bu yüzden C# adresinin kütüphane kullanırsanız, herhangi bir fark olmayacaktır.
Sen (bu büyük bir sorun olmasa da) F # List<T>
tip tanımını saklasın, hangi System.Collections.Generic
açmak gerekmez, ben ResizeArray
zaten veri yapısı için daha uygun bir isim olduğunu düşünüyorum.
Sen de System.Collections.Generic
açmaya gerek - Eğer baþvurduðunuzu List<_>
tip kamu kurucular göstermiyor, (varsayılan olarak açılır Microsoft.FSharp.Collections
ad, itibaren) F # 'ın değişmez liste türüdür.
List<T>
classSystem.Collections.Generic
namespace tanımlanan, yani eklemeniz gerekir edilir:
open System.Collections.Generic