Vengo da JavaScript e so che { }
è un oggetto letterale, che non richiede la chiamata new Object
; Mi chiedo se è lo stesso con C# nella parte {"id",id}, {"saveChangesError",true}
.Quale caratteristica C# consente l'uso di una notazione di tipo "oggetto letterale"?
So che ci sono due caratteristiche di C# qui, mi interessa spiegarmi di più di cosa sono?
new RouteValueDictionary()
{ //<------------------------------[A: what C# feature is this?] -------||
{"id",id}, //<------------------[B: what C# feature is this also?] ||
{"saveChangesError",true} ||
}); //<------------------------------------------------------------------||
E 'la magia solo speciale in C# per chiamare automaticamente alcuni metodi ('add' in particolare) * dopo * l'oggetto è stato creato. –
Per i rispondenti: can * inizializzazione proprietà * essere miscelato con * inizializzazione raccolta *? (Questo dovrebbe essere presente nello spiegare il costrutto "esterno", come avrebbe potuto essere: 'new Foo {Bar = Quz}'.) –
@pst: No, nemmeno in VB.NET, abbastanza stranamente ... – Ryan