什麼是下面的語法?這不是編譯,而是來自舊的代碼庫。奇怪的屬性賦值語法?
private static JsonSerializer JsonSerializer { get; } = new JsonSerializer()
編譯器抱怨:
Error 1 Invalid token '=' in class, struct, or interface member declaration.
什麼是下面的語法?這不是編譯,而是來自舊的代碼庫。奇怪的屬性賦值語法?
private static JsonSerializer JsonSerializer { get; } = new JsonSerializer()
編譯器抱怨:
Error 1 Invalid token '=' in class, struct, or interface member declaration.
你提到什麼是Getter-only auto-properties
,它不是C#的一部分,還沒有!它是C#的新語言功能的一部分。它們已經使用Roslyn,.Net編譯器平臺實現。
羅斯林爲您提供訪問的C#和VB編譯器內部零件。您可以完全訪問編譯結果,甚至可以操作C#本身。
有幾十個其他功能,你會看到在C#6,如宣言表達式:
int.TryParse(s, out var x);
異常過濾器:
catch(E e) if (e.Count > 5) { … }
看到新語言的完整列表FEATURS和他們的當前狀態,在codeplex的官方Roslyn頁面查看this entry。
如果你有點想法並想深入研究,我會建議你看看這個build conference video。它可以讓你大致瞭解Roslyn在C#中的角色。
周圍搜索後,它原來是.NET編譯器平臺(羅斯林)。
什麼版本是這樣的舊代碼庫? –
你確定它曾經編譯過嗎?我不認爲這是有效的。 – Blorgbeard