2015-09-09 5 views

risposta

5

@ Marco di Seemann è la soluzione adeguata, ma è possibile ottenere esattamente quello che si desidera utilizzare questa costruzione dispari:

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 

Ma a dire la verità, questo è qualcosa che non ho mai usato io stesso, probabilmente mai visto usato in natura e più di una lingua-genere di cose più di ogni altra cosa.

+0

Compila, ma non fa quello che mi aspetto che faccia ... –

+0

Huh. Suppongo che sia perché gli argomenti non sono stati usati (che è anche quello che ha fatto il codice OP). – scrwtp

+1

@ Mark Seemann, Ci dispiace, ma cosa ti aspetti che faccia? https://dotnetfiddle.net/wq711M –

6

È questo quello che vuoi?

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

FSI: risposta

> 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

Beh, sono consapevole che può essere fatto in questo modo nel costruttore principale, ma ero solo curioso di sapere se fosse possibile il contrario. – user1206480

Problemi correlati