Quando si tenta di compilare questo:Dichiarare un membro di tipo anonimo con un nome semplice
var car = new { "toyota", 5000 };
Si otterrà l'errore del compilatore membri non valido tipo anonimo membro dichiaratore tipo anonimo" devono essere dichiarate con un incarico di membro. , nome semplice o accesso ai membri. " perché il compilatore non è in grado di dedurre il nome delle proprietà dalle rispettive espressioni. Ciò ha perfettamente senso.
Ciò che mi incuriosisce è che il messaggio di errore implica tre modi validi per dichiarare un membro del tipo. Assegnazione membro e l'accesso utente sono evidenti:
// member assignment
var v = new { Amount = 108, Message = "Hello" };
// member access
var productQuery =
from prod in products
select new { prod.Color, prod.Price };
Quale sarebbe un esempio di dichiarare con un nome semplice?
Googling e le relative domande sul SO comportare esempi di membro assegnazione e accesso unico membro.
In realtà, semplice nome è un termine specifico dal [ Spec. C#) (http://msdn.microsoft.com/en-us/library/aa691350 (v = vs.71) .aspx). Citazione: 'Un nome semplice è costituito da un identificatore, opzionalmente seguito da un elenco di argomenti tipo: nome semplice: identificativo tipo-argomento-listopt ' pagina 158, paragrafo ** 7.6.2 ** da C# 5.0 spec. MSDN e le specifiche del linguaggio sono un po 'fuori sincrono. [Specifica] (http://www.microsoft.com/en-us/download/confirmation.aspx?id=7029) fornisce una definizione più profonda –