2012-03-12 2 views
2

ユーザータイプによって宣言されたメンバーであるHashMultiMapのキー値ペアをインスタンスに追加する方法はありますか?多分私は何か間違ったことをやっているTypeインスタンスでHashMultiMapがどのように変更されるのですか

#r"FSharp.PowerPack" 
    type Test() = 
     member this.tmp = new HashMultiMap<string, int>(HashIdentity.Structural) 
     member this.add name test = 
      this.tmp.Add(name, test) 
    let t1 = new Test() 
    t1.add "aaa" 1 
    let a1 = t1.tmp.TryFind("aaa") 
    let b1 = t1.tmp.Count 
    //+ 
    let t2 = new HashMultiMap<string, int>(HashIdentity.Structural) 
    t2.Add("aaa", 1) 
    let a2 = t2.TryFind("aaa") 
    let b2 = t2.Count 

出力:

--> Referenced 'C:\Program Files\FSharpPowerPack-1.9.9.9\bin\FSharp.PowerPack.dll' 


type Test = 
    class 
    new : unit -> Test 
    member add : name:string -> test:int -> unit 
    member tmp : HashMultiMap<string,int> 
    end 
val t1 : Test 
val a1 : int option = None 
val b1 : int = 0 
val t2 : HashMultiMap<string,int> 
val a2 : int option = Some 1 
val b2 : int = 1 

答えて

3

あなたは新しいマルチマップを作成this.tmp呼び出すたびに - あなたは

type Test() = 
    let map = new HashMultiMap<string, int>(HashIdentity.Structural) 
    member this.tmp = map 
    member this.add name test = 
     map.Add(name, test) 

ノートを使用したいnewのみであること一度と呼ばれる

関連する問題