12
當您嘗試進行編譯:聲明匿名類型成員用一個簡單的名字
var car = new { "toyota", 5000 };
你將得到編譯器錯誤「無效的匿名類型成員聲明匿名類型成員必須與成員分配聲明。 ,簡單的名稱或成員訪問權限。「,因爲編譯器無法從相應的表達式中推斷出屬性的名稱。 這是完全意義上的。
讓我好奇的是,錯誤消息暗示了三種有效的方式來聲明類型成員。成員分配和成員訪問是顯而易見的:
// member assignment
var v = new { Amount = 108, Message = "Hello" };
// member access
var productQuery =
from prod in products
select new { prod.Color, prod.Price };
什麼是一個簡單的名聲明的例子嗎?
谷歌搜索和SO的相關問題導致成員分配只有成員訪問的例子。
事實上,簡單的名字是從特定任期[ C#spec](http://msdn.microsoft.com/en-us/library/aa691350(v = vs.71).aspx)。 Quote:'一個簡單的名稱由一個標識符組成,可選擇後跟一個類型參數列表: simple-name: identifier type-argument-listopt '第158頁,來自C#5.0規範的** 7.6.2 **。 MSDN和語言規範有點不同步。 [規範](http://www.microsoft.com/en-us/download/confirmation.aspx?id=7029)給出了更深入的定義 – 2014-10-27 15:34:53