2009-02-03 10 views

risposta

25

Si potrebbe pensare alla nuova sintassi di inizializzatore di oggetti in C# 3.0. Ecco come si presenta:

var foo = new Foo { Bar = 1, Fizz = "hello" }; 

Quindi, che ci sta dando una nuova istanza di Foo, con il "Bar" proprietà inizializzato a 1 e il "Fizz" proprietà "ciao".

Il trucco con questa sintassi è che se si omette "=" e si fornisce un identificatore, si presume che si stia assegnando a una proprietà con lo stesso nome. Così, per esempio, se ho già avuto un esempio Foo, avrei potuto fare questo:

var foo2 = new Foo { foo1.Bar, foo1.Fizz }; 

Questo, quindi, è sempre molto vicino al vostro esempio. Se la classe ha p1, p2 e le proprietà p3, e si dispone di variabili con lo stesso nome, si potrebbe scrivere:

var foo = new Foo { p1, p2, p3 }; 

Si noti che questo è per la costruzione di istanze solo - non per il passaggio di parametri nei metodi come il tuo esempio spettacoli - quindi potrebbe non essere quello che stai pensando.

+0

Potresti aver ragione Matt anche se non ne sono sicuro. haha. davvero bisogno di salvare queste cose quando le trovo la prossima volta. Saluti. – Schotime

2

Si potrebbe pensare all '"inizializzatore di oggetti" in C#, in cui è possibile costruire un oggetto impostando le proprietà della classe, piuttosto che utilizzare un costruttore parametrizzato.

Non sono sicuro che possa essere utilizzato nell'esempio in cui è stato eseguito il "questo".

+0

C'è qualcosa di simile in Java? – Verhogen

+1

Non per quanto ne so. –

Problemi correlati