C# 8.0 - Target-typed new-expressions

C# 8.0 的 Target-typed new-expressions 能讓開發人員在使用 new 關鍵字建立物件實體時省略帶入型別,編譯器編譯時會依照 Context 幫我們帶入。


以簡單的例子來說,假設已經宣告了變數 p 型別為 Point,那在用 new 關鍵字建立實體時就可以省略帶入 Point。

1
2
...
Point p = new (1, 2);


反組譯看可以看到編譯器會幫我們在 new 關鍵字後面帶入正確的型別。


複雜一點的情境像是陣列元素的宣告也是支援。

1
2
...
Point[] ps = { new (1, 2), new (2, 2) };