Updated Available C# and .NET features (markdown)

James Groom 2024-11-07 17:51:29 +10:00
parent b65bea06d4
commit b0cc64c3ff
1 changed files with 3 additions and 2 deletions

@ -3,14 +3,15 @@ This document is to supplement BizHawk development, and will be deleted once the
BizHawk-specific notes:
- All projects in `/src` use C# 12 currently, as do all the .NET projects in `/External*Projects` but new features have only been adopted in the main solution.
- In the added "convention" column, I've used required/disallowed/encouraged/discouraged/allowed like [RFC 2119](https://datatracker.ietf.org/doc/html/rfc2119)'s MUST / MUST NOT / SHOULD / SHOULD NOT / MAY, respectively. Unsupported is also MUST NOT (because attempting to use the feature will result in an error).
- Each project's target (Framework vs. Standard) is at the top of its project file, or you can check the [project graph](https://gitlab.com/TASVideos/BizHawk/-/snippets/1886666).
- Each project's target (Framework vs. Standard) is at the top of its project file, or you can check the [project graph](https://github.com/TASEmulators/BizHawk/wiki/Dependencies#main-solution).
Legend:
✔️ Available
⭕ Available with polyfill
❌ Not available
? Unknown
Some features are marked ✔️ despite ostensibly needing a polyfill because they are enhancements to existing features and work anywhere the base feature is available—for example, `switch`ing on a `Span<char>` requires no additional polyfill.
Some features are marked ✔️ despite ostensibly needing a polyfill because they are enhancements to existing features and work anywhere the base feature is available—for example, `switch`ing on a `Span<char>` requires no additional polyfill.
The official BCL type reference now has a ["`netstandard2.0` w/ polyfills" filter](https://learn.microsoft.com/en-us/dotnet/api/?view=netstandard-2.0-pp), though it obviously won't have third-party polyfills.
🔵 Availability in .NET Framework 4.8 (`net48`)
🟢 Availability in .NET Standard 2.0 (`netstandard2.0`)