icsharpcode / ILSpy

.NET Decompiler with support for PDB generation, ReadyToRun, Metadata (&more) - cross-platform!
21.18k stars 3.32k forks source link

C# language support status #829

Open dgrunwald opened 7 years ago

dgrunwald commented 7 years ago

Here we list recent C# language versions (> C# 6) and their implementation status in ILSpy. Older (completed) language versions can be found in the wiki.

C# 12 (VS 2022 17.8)

C# 11 (VS 2022 17.4)

C# 10 (VS 2022 17.0)

C# 9 (VS 2019 16.8)

C# 8.0 (Visual Studio 2019)

C# 7.3 (Visual Studio 2017 version 15.7)

C# 7.2 (Visual Studio 2017 version 15.4)

C# 7.1 (Visual Studio 2017 version 15.3)

C# 7.0 (Visual Studio 2017)

sharwell commented 7 years ago

:bulb: I noticed you have nameof operator crossed out. While this is typically not possible due to lack of information in the compiler output, it would be good to support it in limited cases, such as the paramName argument for ArgumentException and derived types, which is likely to align with the name of a parameter visible in the current scope.

sharwell commented 7 years ago

:bulb: I noticed you have Caller Info attributes crossed out. While this is typically not possible, one way it could be leveraged is intentionally omitting arguments (and allowing defaults to apply) in cases where the IL passes literal arguments which are known to align with the actual values that would be inserted by these attributes. The CallerMemberNameAttribute would work without additional considerations. If other information is desired, the #line directive could be used to set the file name and line number for the call site.

IanKemp commented 3 years ago