var)新關鍵字 var:型別從初始化運算式**隱含推斷**。
var i = 1; // 強型別 int
var name = "Edison"; // 強型別 string
var arr = new[] { 1, 2, 3 }; // int[]
var i = 1; i = "str"; 編譯錯誤var intArr = new[] { 1, 2, 3, 4 }; // 推斷為 int[]
無需預先定義類別,直接建立實例:
new { hair = "black", skin = "green", teethCount = 64 }
編譯器自動產生對應類別:
class __Anonymous1
{
private string _hair = "black";
public string hair { get => _hair; set => _hair = value; }
// skin, teethCount 同理
}
相同名稱/型別/順序的匿名型別**共用同一個編譯器產生的類別**,實例可互換。
var frankenstein = new { hair = "black", skin = "green", teethCount = 64 };
var 提供靜態型別支援,讓匿名型別實例可在強型別變數中流動。