stavo sfogliando di Sam LINQ Unleashed per C# e a pagina 7 è elencato:C# metodo di inizializzazione in tipi anonimi
tipi anonimi possono essere inizializzati per includere metodi, ma questi potrebbero essere solo di interesse per i linguisti.
Non capisco davvero se il commento dei linguisti sia uno scherzo. Indipendentemente da ciò, è possibile fare qualcosa di simile in C#
var obj = new {
Name = "Joe", Weight = 200,
GetAge = new Func<int>(() => { return 43; })
};
Qualcuno ha una situazione di vita reale in cui sarebbe stato necessario definire una funzione all'interno di un tipo anonimo? O questo è solo il risultato del tipo di inferenza senza applicazione pratica?
Forse è una specie di brutto scherzo? Da [Tipi anonimi (Guida programmazione C#)] (http://msdn.microsoft.com/en-us/library/bb397696.aspx): _ "I tipi anonimi contengono una o più proprietà di sola lettura pubbliche. Nessun altro tipo di i membri della classe, come metodi o eventi, sono validi. "_ –
@GrantWinney - Immagino che le proprietà di sola lettura possano restituire un'espressione. Questo è diverso da un metodo o evento. – Hogan
Il commento dei linguisti è chiaramente inteso per essere umoristico, ma non necessariamente falso. Come tu stesso hai dimostrato, è possibile creare oggetti anonimi con metodi, ma per quanto riguarda una situazione in cui sarebbe "necessario" usarli, è piuttosto improbabile. Quindi perché l'autore ha detto che potrebbero interessare solo i linguisti. – JLRishe