---
# System prepended metadata

title: 匿名類別

---

# 匿名類別

匿名類別語法中，並不需要像以前`new 類別名稱()`產生一個實體，可以直接使用`new{}`產生一個實體

```csharp=
static void Main(string[] args)
{
    var people = new
    {
      ID = 10010,
      Name = "大俠愛吃漢堡堡",
      Age = 25
     };
     Console.ReadKey();
}
```

我們透過反編譯工具，來觀察背後的實際狀況

![](https://i.imgur.com/Q2pq0WA.png)

從圖中可以觀察到:

1. 匿名類別被編譯過後，會先產生一個泛型類別
2. 匿名類別產生的屬性只能讀取，所以如果在程式中為屬性賦予值，則會跳出錯誤訊息
3. 匿名類別還重寫了父類別的三個方法=>Equals、GetHashCode、ToString

![](https://i.imgur.com/b23WLMA.png)