2015-09-09 5 views

Antwort

5

@ Mark Seemann Antwort die richtige Lösung ist, aber Sie können genau das bekommen, was Sie diese seltsame Konstruktion wollen mit:

type Sample() = 
    member val test1 = "" with get,set 
    member val test2 = "" with get,set 

    new (result1, result2) as sample = 
     Sample() 
      then 
       sample.test1 <- result1 
       sample.test2 <- result2 

Aber die Wahrheit zu sagen, Das ist etwas, das ich selbst nie benutzt habe, wahrscheinlich nie in der Wildnis benutzt und eher ein Sprach-Quiz als etwas anderes.

+0

Es kompiliert, aber es tut nicht, was ich erwarten würde ... –

+0

Huh. Ich nehme an, das liegt daran, dass die Argumente nicht verwendet wurden (was auch der Code von OP tat). – scrwtp

+1

@Mark Seemann, Sorry, aber was erwartest du damit? https://dotnetfiddle.net/wq711M –

6

Ist das was du willst?

type Sample(result1, result2) = 
    member val Test1 = result1 with get,set 
    member val Test2 = result2 with get,set 
    new() = Sample("failed", "passed") 

FSI:

> Sample();; 
val it : Sample = FSI_0002+Sample {Test1 = "failed"; 
            Test2 = "passed";} 
> Sample("foo", "bar");; 
val it : Sample = FSI_0002+Sample {Test1 = "foo"; 
            Test2 = "bar";} 
+1

Nun ich bin mir bewusst, dass es so im primären Konstruktor gemacht werden kann, aber ich war nur neugierig, ob es andersherum möglich wäre. – user1206480

Verwandte Themen