Contrary to the WebAssembly speech, CLR was one of the very first VMs to have support for C like languages, but those capabilities were only fully surfaced to the original Managed C++ (.NET 1.0) and C++/CLI (2.0 onwards).
So now those capabilities are being exposed into C# as well.
For example stack allocation of arrays is now also valid in safe contexts.
You can apply using to any type that has Dispose() without inheriting from IDispose.
Memory slices are now also a thing and native function pointers for example.
Last I saw, this was still being debated by the LDT and weighed against similar proposals such as introducing a `defer` keyword like Swift/Go.
[0] https://awesomeopensource.com/project/ixy-languages/ixy-lang...
But I’m by no means anywhere close to an expert in the topic.
I’m working on a website that has been growing since 1996… The chances of us ever migrating to .NET 5 and onwards is basically zero.